开发环境中,使用的是官方版的hadoop 1.0.1版,而集群上的hadoop则是cloudera的hadoop 2.0版,之前兼容性还不错,直到使用了Counter。
报错如下:
其实从2.0开始,org.apache.hadoop.mapreduce.Counter从1.0版本的class改为interface。网上搜索时,看到也有不少人遇到类似问题,解决办法应该都是一样的,就是替换成2.0版本的jar就行,包括common、hdfs、mapreduce文件夹下的相应包。
报错如下:
FATAL org.apache.hadoop.mapred.Child: Error running child : java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.Counter, but class was expected其实从2.0开始,org.apache.hadoop.mapreduce.Counter从1.0版本的class改为interface。网上搜索时,看到也有不少人遇到类似问题,解决办法应该都是一样的,就是替换成2.0版本的jar就行,包括common、hdfs、mapreduce文件夹下的相应包。
本文讨论了在使用官方版Hadoop 1.0.1与Cloudera Hadoop 2.0版本时,由于Counter从class改为了interface导致的IncompatibleClassChangeError问题。解决方法涉及替换到Hadoop 2.0版本的jar包。
1951

被折叠的 条评论
为什么被折叠?



