spark-submit 报 NoClassDefFoundError 解决

来源:互联网 发布:数据库采集技术 编辑:程序博客网 时间:2024/06/05 15:03

spark-submit 报 NoClassDefFoundError 解决

报错信息

在使用 spark-submit 提交 scala App 的时候,报出了一下异常,而 代码就简单的调用了一下 map() 方法:

Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1$mcII$sp    at com.henvealf.spark.learn.mapPartitonsTest$.main(mapPartitonsTest.scala:33)    at com.henvealf.spark.learn.mapPartitonsTest.main(mapPartitonsTest.scala)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:736)    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185)    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210)    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124)    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)Caused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1$mcII$sp    ... 11 moreCaused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction1$mcII$sp    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)    ... 11 more

问题分析

很明显是 Scala 中的某个类没找到。

然而我在 spark-shell 里面使用 map() 的时候并没有什么问题。于是乎就设想 spark-shell 用的 Scala 与我系统上安装的 Scala 版本不一样。

我的Scala 版本为 2.12.0,
Spark 版本为 2.0.2。

然后就去 $SPARK_HOME/jars 下看了看,发现下面几个 jar 包:

scala-compiler-2.11.8.jarscala-library-2.11.8.jarscalap-2.11.8.jarscala-parser-combinators_2.11-1.0.4.jarcala-reflect-2.11.8.jarscala-xml_2.11-1.0.2.jar

而我编译程序的时候使用的是 2.12.0,就设想是版本不一致。

解决

将系统安装的 Scala 与编译时候用的 Scala 库换成 Scala-2.11.8。

1.x 对应的 scala 版本为 1.10.4

也发现,想知道当前 Spark 所对应的 Scala 版本,去 $SPARK_HOME/jars 下查看就可以。


End!!

0 0
原创粉丝点击