Vin*_*ran 4 java scala maven apache-spark
我已经看到了许多与此错误相关的答案,但是所有答案都重定向到了scala版本等。但是我认为我的情况有所不同。
我有一个使用2.10版设置的远程Spark主工作者集群。我能够通过列出所有工作程序节点的http:// master-ip:8080进行验证
在我的应用程序中,我尝试使用Java 7代码创建SparkConf。以下是代码
sparkConf = new SparkConf(true)
.set("spark.cassandra.connection.host", "localhost")
.set("spark.cassandra.auth.username", "username")
.set("spark.cassandra.auth.password", "pwd")
.set("spark.master", "spark://master-ip:7077")
.set("spark.app.name","Test App");
Run Code Online (Sandbox Code Playgroud)
以下是我添加的Maven依赖项
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.0</version>
<exclusions>
<exclusion>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Caused by: java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less;
at org.apache.spark.util.Utils$.getSystemProperties(Utils.scala:1710)
at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:73)
at org.apache.spark.SparkConf.<init>(SparkConf.scala:68)
Run Code Online (Sandbox Code Playgroud)
来自工作节点之一的Spark版本
./spark-shell --version
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.1.0
/_/
Using Scala version 2.11.8, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_91
Branch
Compiled by user jenkins on 2016-12-16T02:04:48Z
Revision
Url
Type --help for more information.
Run Code Online (Sandbox Code Playgroud)
它与Scala版本有关。
您的集群具有Scala 2.10,但是Spark依赖项是
spark-core_2.11
Run Code Online (Sandbox Code Playgroud)
这意味着Scala 2.11
将其更改为2.10即可使用