[英]spark 0.9.1 on hadoop 2.2.0 maven dependency
我在pom.xml中设置了Apache Spark maven依赖,如下所示
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>0.9.1</version>
</dependency>
但我发现这个依赖使用“ hadoop-client-1.0.4.jar ”和“ hadoop-core-1.0.4.jar ”,当我运行我的程序时,我得到了错误“ org.apache.hadoop.ipc。 RemoteException:服务器IPC版本9无法与客户端版本4 “ 通信 ,这表明我需要将hadoop版本从1.0.4切换到2.2.0。
更新 :
以下解决方案是解决此问题的正确方法吗?
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>0.9.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.2.0</version>
</dependency>
非常感谢您的帮助。
为您的Hadoop版本重新编译Spark,请参阅此处的“关于Hadoop版本的说明”: http : //spark.apache.org/docs/0.9.1/ 。 他们方便地给出2.2.0的例子
SPARK_HADOOP_VERSION=2.2.0 sbt/sbt assembly
这将创建一个新的jar, $SPARK_HOME/assembly/target/scala-2.10/spark-assembly-*jar
,你需要将它包含在你的pom.xml中(而不是从在线jar中排除Hadoop)。
如果您已经托管了自己的存储库(例如在Nexus上),那么将其上传到那里(这就是我做的,它的工作原理很棒)。 如果由于某种原因您无法上传到任何存储库,请使用Maven的install:install-file
或其中一个答案Maven:通过相对路径向jar添加依赖项
Spark 1.2.0依赖于hadoop 2.2.0是默认的。 如果你可以将你的火花依赖性更新为1.2.0(或更新),这将解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.