1. 程式人生 > >MapReduce單元測試不通過

MapReduce單元測試不通過

前幾天用mrunit進行單元測試,一直報錯:java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.TaskInputOutputContext, but class was expected

在網上查了一下,說這個錯誤是匯入的包有問題,廢了老半天勁,原來是mrunit包匯入的不對。開始匯入包是:

後來在改了依賴後,pom檔案中的依賴是這樣寫的:

<dependency>
    <groupId>org.apache.mrunit</groupId>
    <artifactId>mrunit</artifactId>
    <version>1.0.0</version>
    <scope>test</scope>
</dependency>

但是一直報錯誤:Missing artifact org.apache.mrunit:mrunit:jar:1.0.0

最後加了一行改成如下:

<dependency>
	    <groupId>org.apache.mrunit</groupId>
	    <artifactId>mrunit</artifactId>
	    <version>1.0.0</version>
	   <classifier>hadoop2</classifier>
	    <scope>test</scope>
</dependency>

發現錯誤消失了。 去檢視下載的jar包後發現,包名包含hadoop2,mrunit官網看了一下也帶著hadoop:

要是不加hadoop2,maven肯定不知道下載什麼啊。