Spark提交失败,包含java.lang.NoSuchMethodError:scala.Predef $。$ conforms()Lscala / Predef $$ less $ colon $ less;

我正在使用spark 1.3.1 prebuild version spark-1.3.1-bin-hadoop2.6.tgz

线程“main”中的exceptionjava.lang.NoSuchMethodError:scala.Predef $。$ conforms()Lscala / Predef $$ less $ colon $ less; org.apache.spark.util.Utils $ .getSystemProperties(Utils.scala:1418)org.apache.spark.SparkConf。(SparkConf.scala:58)org.apache.spark.SparkConf。(SparkConf.scala: 52)在com.zoho.zbi.Testing.test(Testing.java:43)com.zoho.zbi.Testing.main(Testing.java:39)使用Spark的默认log4j配置文件:org / apache / spark / log4j- defaults.properties

我正在尝试一个简单的演示应用程序来保存到cassandra

SparkConf batchConf= new SparkConf() .setSparkHome(sparkHome) .setJars(jars) .setAppName(ZohoBIConstants.getAppName("cassandra"))//NO I18N .setMaster(master).set("spark.cassandra.connection.host", "localhost"); JavaSparkContext sc = new JavaSparkContext(batchConf); // here we are going to save some data to Cassandra... List people = Arrays.asList( Person.newInstance(1, "John", new Date()), Person.newInstance(2, "Anna", new Date()), Person.newInstance(3, "Andrew", new Date()) ); // Person test = Person.newInstance(1, "vini", new Date())'' System.out.println("Inside Java API Demo : "+people); JavaRDD rdd = sc.parallelize(people); System.out.println("Inside Java API Demo rdd : "+rdd); javaFunctions(rdd).writerBuilder("test", "people", mapToRow(Person.class)).saveToCassandra(); System.out.println("Stopping sc"); sc.stop(); 

当我提交使用spark提交其工作

 bin/spark-submit --class "abc.efg.Testing" --master spark://xyz:7077 /home/test/target/uber-Cassandra-0.0.1-SNAPSHOT.jar 

这是我的pom

依赖

    org.scala-lang scala-library ${scala.version} compile   org.scala-lang scala-compiler ${scala.version}    com.google.guava guava 18.0   com.yammer.metrics metrics-core 2.2.0   junit junit 3.8.1 test   javax.servlet javax.servlet-api 3.1.0 provided   com.datastax.cassandra cassandra-driver-core 2.1.5   org.json json 20090211    com.datastax.spark spark-cassandra-connector_2.10 1.2.0    com.datastax.spark spark-cassandra-connector-java_2.10 1.2.0    org.apache.spark spark-core_2.11 1.3.1    org.apache.spark spark-streaming_2.11 1.3.1    org.apache.spark spark-streaming-kafka_2.10 1.3.1   

我建立使用

    org.apache.maven.plugins maven-compiler-plugin 2.3.2  1.7 1.7    org.apache.maven.plugins maven-shade-plugin 2.3   package  shade       *:*  META-INF/*.SF META-INF/*.DSA META-INF/*.RSA    uber-${project.artifactId}-${project.version}    org.apache.maven.plugins maven-compiler-plugin 2.3.2  1.7 1.7     

但是当我通过代码提交它不起作用时,任何帮助都很有用..我尝试在pom中添加了scala2.10.4道具仍然没有运气

我在eclipse中运行作为应用程序运行所有主,spark home和jar设置为sparkConf错误显示在sparkConf中

我的scala版本是

scala -version Scala代码运行器版本2.11.2 – 版权所有2002-2013,LAMP / EPFL

这与这个问题有什么关系吗?

如何切换到较旧版本的scala? 在文档中说spark1.3.1支持scala 2.10.x版本,请告诉我如何解决这个问题

您遇到的问题是由于Scala版本中的不兼容性。 使用较旧的Scala 2.10编译Prebuild Spark 1.3.1发行版,因为2.11不支持某些Spark依赖项,包括JDBC支持。

我建议用Scala 2.10运行你的Spark集群。 但是,如果您需要,还可以通过以下方式使用Scala 2.11编译Spark包:

 dev/change-version-to-2.11.sh mvn -Pyarn -Phadoop-2.4 -Dscala-2.11 -DskipTests clean package