处理错误:找到接口org.apache.hadoop.mapreduce.TaskAttemptContext,但是类是预期的

时间:2013-01-16 08:46:51

标签: hadoop mapreduce cloudera

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

错误:找到接口org.apache.hadoop.mapreduce.TaskAttemptContext,但是预期了类

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

那么如何编译它以便它在CDH4中运行完美。

2 个答案:

答案 0 :(得分:8)

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

我用过: Hadoop的共同-2.0.2-alpha.jar Hadoop的MapReduce的客户端 - 芯2.0.2-alpha.jar

用于编译我的代码,之后它运行正常,没有给出上述错误。

答案 1 :(得分:0)

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