【发布时间】:2014-07-15 10:40:16
【问题描述】:
我正在使用 HDP 2.0 - hadoop 2.2.0 和 Apache Avro 1.7.4 并遵循 avro mapreduce 指南以获取新的 M/R api here
我收到以下错误
2014-07-15 05:46:04,354 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskAttemptContext, but class was expected
at org.apache.avro.mapreduce.AvroKeyInputFormat.createRecordReader(AvroKeyInputFormat.java:47)
at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.<init>(MapTask.java:491)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
似乎我正在混合新旧 api。有什么猜测吗? 谢谢
【问题讨论】:
-
不,您正在混淆 Hadoop 版本。我猜 Avro 1.7.4 不是用 Hadoop 2.2.x 编译的。
-
也找到了。谢谢