2017-02-18 36 views
2

我已經成功構建Spark 2.1源代碼。 但是,當我運行一些示例(例如,org.apache.spark.examples.mllib.BinaryClassification)時,出現以下錯誤。Spark示例NoClassDefFoundError scopt/OptionParser

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

我嘗試使用星火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)。有posts與此錯誤相關,但它們似乎不適用,因爲Spark examples文件夾沒有任何.sbt文件。

回答

2

我找到了答案。爲避免錯誤,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 ... 
+0

男人這太瘋狂了。我已經做了4年的火花 - 甚至爲mllib做出了貢獻,但無法弄清楚。 'bin/run-example' **真**應該已經考慮到了這一點 – javadba

相關問題