hadoop的 IncompatibleClassChangeError

开发环境中,使用的是官方版的hadoop 1.0.1版,而集群上的hadoop则是cloudera的hadoop 2.0版,之前兼容性还不错,直到使用了Counter。

报错如下:
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文件夹下的相应包。

猜你喜欢

转载自blackwing.iteye.com/blog/1797110