Hadoop 2-使用PIG over Hadoop解决MapReduce问题

Hadoop 2-使用PIG over Hadoop解决MapReduce问题,mapreduce,cassandra,apache-pig,hadoop2,Mapreduce,Cassandra,Apache Pig,Hadoop2,我在使用Hadoop 2(纱线)和Pig运行MapReduce程序时遇到了一个问题。我可以使用Pig脚本从Cassandra读取数据,但是在运行MapReduce时,它会抛出异常,如下所示: Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected at o

我在使用Hadoop 2(纱线)和Pig运行MapReduce程序时遇到了一个问题。我可以使用Pig脚本从Cassandra读取数据,但是在运行MapReduce时,它会抛出异常,如下所示:

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
    at org.apache.cassandra.hadoop.ColumnFamilyOutputFormat.checkOutputSpecs(ColumnFamilyOutputFormat.java:80)
    at org.apache.pig.newplan.logical.rules.InputOutputFileValidator$InputOutputFileVisitor.visit(InputOutputFileValidator.java:80)
    at org.apache.pig.newplan.logical.relational.LOStore.accept(LOStore.java:66)   

Pig的二进制发行版是根据Hadoop 1.x编译的。您需要根据2.x(在我的例子中是2.2)重新编译它才能让它工作。试试这个:

ant clean jar-withouthadoop -Dhadoopversion=23
()