maven在eclipse建立工程,运行出现Server IPC version 9 cannot communicate with client version 4错误

来源:互联网 发布:机器人发音软件 编辑:程序博客网 时间:2024/05/18 03:21

这个问题研究了好久好久,都快崩溃了,几近放弃。


问题的根源在于,工程当中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里面的包它自然会下载更改。


但问题是,maven independencies里面的包,并不是所有的hadoop版本都包含,例如hadoop-core最高的版本就是1.2.1, 这可要吓死宝宝了,难道说,要运行maven就只能用低版本的hadoop吗?显然不可能,一定是有其他的原因,突然看到一个帖子,绕过hadoop-core,设置了别的属性,比如hadoop-hdfs等属性,这些属性的最高版本已经到了2.5.1了这样一来,就不会报错了,大功告成,我的pom.xml文件是这么设置的:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>


  <groupId>com</groupId>
  <artifactId>benben</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>


  <name>benben</name>
  <url>http://maven.apache.org</url>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>


  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
     
<dependency>  
            <groupId>org.apache.hadoop</groupId>  
            <artifactId>hadoop-common</artifactId>  
            <version>2.5.1</version>  
    </dependency>
    <dependency>  
            <groupId>org.apache.hadoop</groupId>  
            <artifactId>hadoop-hdfs</artifactId>  
            <version>2.5.1</version>  
    </dependency>
    <dependency>  
            <groupId>org.apache.hadoop</groupId>  
            <artifactId>hadoop-client</artifactId>  
            <version>2.5.1</version>  
    </dependency>
  </dependencies>
</project>


原先我是没有设置hadoop-common、hadoop-hdfs、hadoop-client这三个,而是写了个:


<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.1</version>
</dependency>
  </dependencies>


这个1.2.1是最高版本了。因此总是不行

0 0