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

  问题的根源在于,工程当中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文件是这么设置的:

复制代码
<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这三个,而是写了个:

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

 

posted @   ngulc  阅读(598)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示