【发布时间】:2014-03-24 20:44:21
【问题描述】:
我正在使用 hadoop 2.2.0 在 Amazon Web Services Red Hat 6.4 上运行 map-reduce 作业。我正在使用的 Jar 文件是在我的本地 Windows 7 计算机上构建的。 map reduce 作业在我的 Windows 7 机器上本地安装的 Hadoop 上运行良好,但是当我尝试在 Amazon 实例上运行它时,我收到以下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: mapReduce/Tes
tXMLConfig : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:205)
我进行了一些研究,似乎当您在运行旧版本 Java 的系统上运行在新版本 Java 中构建的 Jar 文件时会生成此错误。但是,当我在我的 Windows 7 系统(其中 Jar 文件是使用 Eclipse Kepler 构建的)上运行“java -version”时,它 给了我以下内容:
java版本“1.8.0” Java(TM) SE 运行时环境 (build 1.8.0-b132) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.0-b70,混合模式)
当我在我的 Amazon Web Services Red Hat 6.4 实例上运行它时,它还会提供:
java版本“1.8.0” Java(TM) SE 运行时环境 (build 1.8.0-b132) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.0-b70,混合模式)
两个系统都使用完全相同的 Java 版本,所以我不确定 Java 版本不匹配的问题。在 Eclipse 中,当我转到 Window > Java > Complier 时,我可以看到“Compiler Compliance Level”为 1.7。但是带有 Java 1.8 的 Hadoop 应该能够运行基于旧版本 Java 构建的 Jar 文件(它在使用 java 1.8 的 Windows 7 机器上运行)。
我似乎在这里找不到任何问题。任何帮助将不胜感激!
【问题讨论】:
-
您的 Eclipse 项目是否使用 1.8 JRE 系统库?
-
bin/hadoop是一个脚本文件。在该文件的末尾,您可以回显$JAVA变量以准确查看您正在运行的JVM 版本。可能是/etc/alternatives/java,它将指向一些操作系统标准安装。 -
谢谢,这解决了我的问题。即使我安装了 java 1.8,bin/hadoop 脚本文件仍试图与 java 1.6 一起运行。
-
@Hi_Im_Tim。你在哪里写的 echo 语句?
标签: java eclipse hadoop amazon-web-services