使用java 5的0.20.2 API hadoop版本

时间:2010-06-07 15:02:26

标签: java maven hadoop mapreduce

我已经开始尝试在java 1.5.0_14中实现MapReduce算法的maven项目。我选择了0.20.2 API hadoop版本。在pom.xml中,我正在使用以下依赖项:

<依赖性>

< groupId>org.apache.hadoop< /groupId>      
< artifactId>hadoop-core< /artifactId>      
< version>0.20.2< /version>

&LT; /依赖性&GT;

但是当我使用导入到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 。类) 类文件有错误的版本50.0,应该是49.0

有人知道我该如何解决这个问题。

感谢。

3 个答案:

答案 0 :(得分:2)

Maven默认编译为JDK 1.4兼容性。你需要改变它。

您需要将其添加到您的pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>

[编辑:谢谢Sean指出Hadoop需要JDK 6]

答案 1 :(得分:1)

我遇到了同样的问题。原来sbt本身是在Java 5上运行的,这是我Mac上的默认设置,这是一个愚蠢但有效的理由。一旦我改变了我的sbt脚本以明确地从Java6开始,一切都运行良好。

答案 2 :(得分:0)

无论你的maven-compiler-plugin的源代码是什么?目标配置(仅控制自己的源代码编译方式)必须使用1.6 JVM来运行Hadoop的代码,因为它是针对“1.6”JVM编译的。

因此,只需安装1.6 java运行时并使用它来运行程序。