Spark 示例 NoClassDefFoundError scopt/OptionParser

Spark Examples NoClassDefFoundError scopt/OptionParser

我已经成功构建了 Spark 2.1 源代码。 但是,当我 运行 某些示例(例如 org.apache.spark.examples.mllib.BinaryClassification)时,出现以下错误。

Exception in thread "main" java.lang.NoClassDefFoundError: scopt/OptionParser

我尝试使用 Spark 2.1 预构建版本 (examples/jars/spark-examples_2.11-2.1.0.jar) 运行 这些示例,但我遇到了同样的错误。 Spark 1.6 预构建版本有效 (lib/spark-examples-1.6.2-hadoop2.6.0.jar)。有 与此错误相关,但它们似乎不适用,因为 Spark examples 文件夹没有任何 .sbt 文件。

我找到了答案。为避免错误,scopt_x.xx-x.x.x.jar 也应使用 --jars 提交。当您构建 Spark 示例时,除了 spark-examples_x.xx-x.x.x.jar 之外,还将构建 scopt_x.xx-x.x.x.jar(在我的例子中,在同一目标文件夹 examples/target/scala-2.11/jars 中)。

获得 jar 文件后,您可以将其与申请一起提交:

./bin/spark-submit \
   --jars examples/target/scala-2.11/jars/scopt_x.xx-x.x.x.jar \
   --class org.apache.spark.examples.mllib.BinaryClassification \
   --master ...