使用java 5的0.20.2 API hadoop版本
我已经开始尝试在java 1.5.0_14中实现MapReduce算法的maven项目。 我选择了0.20.2 API hadoop版本。 在pom.xml中,我正在使用以下依赖项:
org.apache.hadoop hadoop-core 0.20.2
但是当我使用导入到org.apache.hadoop类时,我收到以下错误:
坏类文件:$ {HOME_DIR} \ repository \ org \ apache \ hadoop \ hadoop-core \ 0.20.2 \ hadoop-core-0.20.2.jar(org / apache / hadoop / fs / Path.class)类文件有错误的版本50.0,应该是49.0 。
有人知道我该如何解决这个问题。
谢谢。
Maven默认编译为JDK 1.4兼容性。 你需要改变它。
您需要将其添加到您的pom.xml:
org.apache.maven.plugins maven-compiler-plugin 2.0.2 1.6 1.6
[编辑:谢谢Sean指出Hadoop需要JDK 6]
我遇到了同样的问题。 原来sbt本身是在Java 5上运行的,这是我Mac上的默认设置,这是一个愚蠢但有效的理由。 一旦我改变了我的sbt脚本以明确地从Java6开始,一切都运行良好。
无论您的maven-compiler-plugin的源和目标配置(仅控制您自己的源代码的编译方式),您必须使用1.6 JVM来运行Hadoop的代码,因为它是针对“1.6”JVM编译的。
因此,只需安装1.6 java运行时并使用它来运行程序。
- 除了修改hadoop-env.sh之外,如何在hadoop中指定系统属性?
- 错误:java.lang.IllegalArgumentException:即使使用变通方法,比较方法也违反了其一般合同
- 使用hadoop-yarn-server-nodemanager编译错误
- Hadoop 2.0 JAR文件
- “hadoop namenode -format”返回java.net.UnknownHostException
- 线程“main”中的exceptionjava.lang.NoClassDefFoundError:org / apache / hadoop / hbase / HBaseConfiguration
- 从FSDataInputStream转换为FileInputStream
- 使用hadoop运行jar时的NoSuchMethodError Sets.newConcurrentHashSet()
- 如何在动作书中的mahout中运行示例