2017-02-18 21 views
2

Я успешно сгенерировал исходный код искры 2.1. Однако, когда я запускаю некоторые из примеров (например, org.apache.spark.examples.mllib.BinaryClassification), я получаю следующую ошибку.Примеры искры 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

Людей этого безумия. Я делал искру - и даже вносил свой вклад в mllib - в течение 4 лет, но не мог понять это. «Bin/run-example' ** действительно ** должен был позаботиться об этом – javadba