MapReduce單元測試不通過
阿新 • • 發佈:2018-11-29
前幾天用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肯定不知道下載什麼啊。