我正在尝试使用 MRUnit 对 Hadoop2 进行测试,但出现以下错误:
java.lang.IncompatibleClassChangeError: Found class org.apache.hadoop.mapreduce.TaskInputOutputContext, but interface was expected
我在 Stack Overflow 上看到了其他几个答案,但大多数似乎与在 Hadoop1 和 Hadoop2 的 pom.xml 文件中包含多个配置有关的问题。
有人对可能导致这种情况的原因有任何见解吗?
我的 pom.xml 文件如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.davidmoten</groupId>
<artifactId>geo</artifactId>
<version>0.6.5</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>activation</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.mrunit</groupId>
<artifactId>mrunit</artifactId>
<version>1.0.0</version>
<classifier>hadoop2</classifier>
<scope>test</scope>
</dependency>