gpt4 book ai didi

java - org/apache/spark/network/util/ByteUnit : Unsupported major. 次要版本 52.0

转载 作者:行者123 更新时间:2023-11-30 07:49:10 25 4
gpt4 key购买 nike

我正在尝试在 Yarn 上运行 Spark。

我运行的是 Spark 1.6.0,它适用于 Yarn (hadoop 2.7.1)。然后,我使用我使用的相同 Yarn 升级到 Spark 2.2.1,我的应用程序都因为这个错误而失败:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/spark/network/util/ByteUnit : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:442)
at java.net.URLClassLoader.access$100(URLClassLoader.java:64)
at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.apache.spark.internal.config.package$.<init>(package.scala:41)
at org.apache.spark.internal.config.package$.<clinit>(package.scala)
at org.apache.spark.deploy.yarn.ApplicationMaster.<init>(ApplicationMaster.scala:73)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$main$1.apply$mcV$sp(ApplicationMaster.scala:763)
at org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:67)
at org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:66)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:66)
at org.apache.spark.deploy.yarn.ApplicationMaster$.main(ApplicationMaster.scala:762)
at org.apache.spark.deploy.yarn.ExecutorLauncher$.main(ApplicationMaster.scala:785)
at org.apache.spark.deploy.yarn.ExecutorLauncher.main(ApplicationMaster.scala)

经过一些研究,我发现这是由于使用比用于运行的 JDK 版本更旧的 JDK 版本完成的构建。我运行的是 Java 7,现在我安装了 Java 8 和 java -version 显示(在 master 和 worker 中):

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

和 javac -version :

javac 1.8.0_161

我希望错误在升级时停止,但它没有。

此错误是否与 HADOOP_CONF_DIR 的任何 conf 文件有关?或者我在升级 java 时做错了什么(任何环境变量或类似的东西)

任何帮助将不胜感激,谢谢

最佳答案

当您的 JDK 版本低于 Java 应用程序中的 .class 文件时,将抛出 UnsupportedClassVersionError。

问题是因为 Java 版本不匹配。如果您查看 Wikipedia Java Class Reference您可以看到您的应用程序的新版本需要 Java 8:

  • J2SE 17 = 61
  • J2SE 16 = 60
  • J2SE 15 = 59
  • J2SE 14 = 58
  • J2SE 13 = 57
  • J2SE 12 = 56
  • J2SE 11 = 55
  • J2SE 10 = 54
  • J2SE 9 = 53
  • J2SE 8 = 52
  • J2SE 7 = 51
  • J2SE 6.0 = 50
  • J2SE 5.0 = 49
  • JDK 1.4 = 48
  • JDK 1.3 = 47
  • JDK 1.2 = 46
  • JDK 1.1 = 45

如果您使用的是 Java 8,但仍然出现此错误,则应更改 JAVA_HOME 环境变量的内容。

如果你仍然得到这个错误,你应该看看这个 Stackoverflow question (或者您始终可以从系统中删除所有旧版本的 Java...)。

显然,您必须在 spark-defaults.conf 中添加 spark.executorEnv.JAVA_HOME=/usr/java/。请注意,您可以在命令行中使用 --conf 提供它。

参见 http://spark.apache.org/docs/latest/configuration.html#runtime-environment

关于java - org/apache/spark/network/util/ByteUnit : Unsupported major. 次要版本 52.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48663431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com