我正在尝试使用JRE 1.8.0在Eclipse中运行Spark应用程序,并且遇到以下异常。为什么呢?
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
18/04/01 17:05:30 INFO SparkContext: Running Spark version 1.4.1
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
at org.apache.spark.util.TimeStampedWeakValueHashMap.<init>(TimeStampedWeakValueHashMap.scala:42)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:277)
at com.pooja.spark.training.sparkexamples.wordcount$.main(wordcount.scala:10)
at com.pooja.spark.training.sparkexamples.wordcount.main(wordcount.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.GenTraversableOnce$class
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more
答案 0 :(得分:2)
“Spark版本1.4.1”?!那太旧了。除非您知道自己在做什么,否则请升级到最新的1.x版本链或2.3.0(如果可能)。
线程“main”中的异常java.lang.NoClassDefFoundError:scala / collection / GenTraversableOnce $ class
运行时异常是因为您的运行时环境中没有可用的Scala库(在JVM的CLASSPATH中)。您必须告诉Eclipse使用Scala作为依赖项,在运行Spark应用程序时必须将其包含在JVM中。
我建议使用Eclipse和sbt或Apache Maven等工具来管理依赖项。
虽然我们正在努力,但我也建议您在Apache Spark Examples中尝试使用Spark示例。