3

我正在使用 CDH4 并使用新的 mapreduce API 编写了一个 MapReduce 应用程序。我已经针对 hadoop-core-1.0.3.jar 编译了它,当我在我的 Hadoop 集群上运行它时,我得到了错误:

错误:找到接口 org.apache.hadoop.mapreduce.TaskAttemptContext,但需要类

我提到了这个 StackOverflow 问题,它似乎在谈论同样的问题。答案表明我们针对 Hadoop-core-2.X.jar 文件编译代码,但我找不到类似的东西。

那么我该如何编译它才能在 CDH4 中完美运行。

4

2 回答 2

8

我在上述问题中发布的链接中的答案要求针对 Hadoop 2.0 库进行编译。顺便说一句,在 Hadoop 1.0 之后,将使用两个(或更多)不同的 jar,而不是使用单个 Hadoop Core jar 进行编译。

我用过:hadoop-common-2.0.2-alpha.jar hadoop-mapreduce-client-core-2.0.2-alpha.jar

用于编译我的代码,之后它运行良好,没有出现上述错误。

于 2013-01-16T10:03:35.317 回答
0

对我来说,我发现我在 Avro 1.7.4 中使用了错误版本的 Hadoop(http://www.cloudera.com/content/cloudera/en/documentation/cdh4/v4-2-0/CDH4-Release-Notes /cdh4ki_topic_2_9.html )

于 2015-04-20T01:52:28.397 回答