无法连接到远程系统上的火花

时间:2016-10-27 09:58:32

标签: java scala apache-spark

我正在尝试通过java app连接到远程系统上的spark master

我正在使用

<dependency> <!-- Spark dependency -->
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.0.1</version>
</dependency>

和代码

 {
        SparkSession sparkSession = SparkSession.builder().
                           master("spark://ip:7077")
                          .appName("spark session example")
                          .getOrCreate();
        JavaSparkContext sc = new JavaSparkContext(sparkSession.sparkContext());
    }

获得

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
    at org.apache.spark.sql.SparkSession$Builder.config(SparkSession.scala:713)
    at org.apache.spark.sql.SparkSession$Builder.master(SparkSession.scala:766)
    at com.mobelisk.spark.JavaSparkPi.main(JavaSparkPi.java:9)

如果我改为

<dependency> <!-- Spark dependency -->
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            **<version>2.0.1</version>**
        </dependency>

获得相同的程序

引起:java.lang.RuntimeException:java.io.InvalidClassException:org.apache.spark.rpc.netty.RequestMessage;本地类不兼容:stream classdesc serialVersionUID = -2221986757032131007,本地类serialVersionUID = -5447855329526097695

在远程的Spark-shell中

Spark上下文可用作'sc'(master = local [*],app id = local-1477561433881)。 Spark会话可用作'spark'。 欢迎来到       ____ __      / / _ _____ / /     _ \ / _ / _`/ /' /    / / .__ / _, / / / / _ \ version 2.0.1       / /

使用Scala版本2.11.8(Java HotSpot(TM)64位服务器VM,Java 1.8.0_101) 输入表达式以对其进行评估。 键入:帮助以获取更多信息。

由于我对这一切都很陌生,我无法在程序

中找出问题

2 个答案:

答案 0 :(得分:0)

我想出来了,如果有人要遵循类似的方法,请发布这个。

我添加了

<groupId>com.datastax.spark</groupId>
            <artifactId>spark-cassandra-connector_2.10</artifactId>
<version>2.0.0-M3</version>

附带scala-library 2.10.6

但是在spark-core

中已经存在一个scala-library 2.11.8

所以我不得不排除早先的这个

<dependency>
            <groupId>com.datastax.spark</groupId>
            <artifactId>spark-cassandra-connector_2.10</artifactId>
            <version>2.0.0-M3</version>
            <exclusions>
                <exclusion>
                    <artifactId>scala-library</artifactId>
                    <groupId>org.scala-lang</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>scala-reflect</artifactId>
                    <groupId>org.scala-lang</groupId>
                </exclusion>
            </exclusions>
</dependency>

现在一切正常

答案 1 :(得分:-1)

此Spark版本不匹配:

  • 你在项目中使用2.10。
  • 群集使用2.11

将依赖关系更新为2.11。