我开始测试火花。 我在本地计算机上安装了spark,并使用单个worker运行本地集群。当我尝试通过如下设置sparconf从IDE执行我的工作时:
final SparkConf conf = new SparkConf().setAppName("testSparkfromJava").setMaster("spark://XXXXXXXXXX:7077");
final JavaSparkContext sc = new JavaSparkContext(conf);
final JavaRDD<String> distFile = sc.textFile(Paths.get("").toAbsolutePath().toString() + "dataSpark/datastores.json");*
我遇到了这个例外:
java.lang.RuntimeException: java.io.InvalidClassException: org.apache.spark.rpc.netty.RequestMessage; local class incompatible: stream classdesc serialVersionUID = -5447855329526097695, local class serialVersionUID = -2221986757032131007
答案 0 :(得分:5)
全部使用以下版本组合
安装火花1.6.2
使用bin / spark-submit --version验证
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.2</version>
</dependency>
和
Scala 2.10.6和Java 8.
请注意, NOT 工作并且与以下版本有类似的类不兼容问题
Scala 2.11.8和Java 8
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.6.2</version>
</dependency>
答案 1 :(得分:4)
下面可能有多种不兼容的原因:
对我来说,它的Scala版本,我在IDE中使用 2.11.X ,但官方文档说:
Spark runs on Java 7+, Python 2.6+ and R 3.1+. For the Scala API, Spark 1.6.1 uses Scala 2.10. You will need to use a compatible Scala version (2.10.x).
且文档中的x 告诉不能小于3 ,导致this。 希望它会对你有所帮助!
答案 2 :(得分:3)
看起来您安装的Spark版本与IDE中使用的Spark版本不同。
如果您正在使用maven,只需比较pom.xml中声明的依赖项版本和bin/spark-submit --version
的输出,并确保它们相同。
答案 3 :(得分:0)
我遇到了这个问题,因为Spark jar依赖项是2.1.0,但是安装的Spark Engine版本是2.0.0,因此版本不匹配,因此会引发此异常。
此问题的根本原因是项目中的Spark jar依赖项版本不匹配,并且正在运行执行Spark作业的已安装Spark Engine。
因此请验证两个版本并使它们相同。
示例Spark-core Jar版本2.1.0和Spark Computation Engine版本必须为:2.1.0
火花核心Jar版本2.0.0和Spark计算引擎版本必须为:2.0.0
对我来说很完美。