当我启动一个pig脚本时,我遇到了一个java问题,它似乎是一些依赖项或版本冲突,运行debian/cloudera cdh4/apache pig
java.lang.Exception: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.Counter, but class was expected
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:406)
Caused by: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.Counter, but class was expected
2条答案
按热度按时间mwecs4sa1#
如果您使用的是maven,则需要在pom文件中进行更改。
之前我使用了以下依赖项:
当我把它改成:
我想这可能有用。据我所知,原因是hadoop的更高版本将counter视为接口而不是类。所以我们不能创建计数器的对象。
wixjitnu2#
这个
IncomaptibleClassChangeError
当您的代码是针对一个版本的hadoop编译的,并且是针对另一个版本运行时,几乎总是会产生这种情况。请检查以确保编译的代码与运行的hadoop版本相同。