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