問題的根源在於,工程當中maven dependencies裏面的包,有個hadoop-core的包,版本過低,這樣,程序裏面全部引用到org.apache.hadoop的地方,都是低版本的,你用的是maven3的話,默認是hadoop-core-1.2.1.jar,這個就是那個「ipc client version4」, 而通常狀況下你的電腦裏運行的hadoop都是2.x,顯然版本不對,因而我就想辦法修改這個,可是maven裝上以後就不能隨便改裏面的包,折騰半天以後,發現只能經過工程的pom.xml文件來改,在這個裏面改了以後,maven dependencies裏面的包它天然會下載更改。apache
但問題是,maven independencies裏面的包,並非全部的hadoop版本都包含,例如hadoop-core最高的版本就是1.2.1, 這可要嚇死寶寶了,難道說,要運行maven就只能用低版本的hadoop嗎?顯然不可能,必定是有其餘的緣由,忽然看到一個帖子,繞過hadoop-core,設置了別的屬性,好比hadoop-hdfs等屬性,這些屬性的最高版本已經到了2.5.1了這樣一來,就不會報錯了,大功告成,個人pom.xml文件是這麼設置的:maven
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.8.3</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.8.3</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.8.3</version> </dependency>
原先我是沒有設置hadoop-common、hadoop-hdfs、hadoop-client這三個,而是寫了個:oop
<groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>1.2.1</version> </dependency>