我正试图在aws emr中运行一个pig脚本和elephantbird。我正在使用hadoop 2.x来实现这一点,但我得到以下消息:
2014-09-09 14:53:11001 info[main]org.apache.hadoop.mapred.maptask:开始刷新Map输出2014-09-09 14:53:11029 info[main]org.apache.hadoop.io.compress.codepool:获取全新的压缩器[.snappy]2014-09-09 14:53:11,040 fatal[main]org.apache.hadoop.mapred.yarnchild:运行子级时出错:java.lang.compatibleClassChangeError:找到接口org.apache.hadoop.mapreduce.counter,但是com.twitter.elephantbird.pig.util.pigcounterhelper.incrcounter(pigcounterhelper)上需要类。java:55)在com.twitter.elephantbird.pig.load.lzobaseloadfunc.incrcounter(lzobaseloadfunc。java:70)在com.twitter.elephantbird.pig.load.jsonloader.getnext(jsonloader。java:128)在org.apache.pig.backend.hadoop.executionengine.mapreducelayer.pigrecordreader.nextkeyvalue(pigrecordreader。java:211)在org.apache.hadoop.mapred.maptask$newtrackingrecordreader.nextkeyvalue(maptask。java:544)在org.apache.hadoop.mapreduce.task.mapcontextimpl.nextkeyvalue(mapcontextimpl。java:80)在org.apache.hadoop.mapreduce.lib.map.wrappedmapper$context.nextkeyvalue(wrappedmapper。java:91)在org.apache.hadoop.mapreduce.mapper.run(mapper。java:144)在org.apache.hadoop.mapred.maptask.runnewmapper(maptask。java:775)在org.apache.hadoop.mapred.maptask.run(maptask。java:341)在org.apache.hadoop.mapred.yarnchild$2.run(yarnchild。java:167)在javax.security.auth.subject.doas(主题)中的java.security.accesscontroller.doprivileged(本机方法)。java:415)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1548)在org.apache.hadoop.mapred.yarnchild.main(yarnchild。java:162)
我尝试过不同版本的 elephant-bird (从3.0.9到4.0.x),但似乎都不起作用。我将集群降级为hadoop1.x,使用 elephant-bird 也没有问题。你知道吗?
暂无答案!
目前还没有任何答案,快来回答吧!