为什么 Spark 应用程序在 Eclipse 中"Exception in thread "主" java.lang.NoClassDefFoundError"时会失败?



我正在尝试使用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

" 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示例中尝试火花示例。

最新更新