本地类不兼容异常:从IDE运行spark standalone时

时间:2016-02-18 15:31:15

标签: java apache-spark

我开始测试火花。 我在本地计算机上安装了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

4 个答案:

答案 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)

下面可能有多种不兼容的原因:

  • Hadoop版本;
  • Spark版本;
  • Scala版本;
  • ...

对我来说,它的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).

如果您使用最新的Java(1.8),

且文档中的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

对我来说很完美。