Spark 2.6.0: Исключение в потоке "main" java.lang.ClassNotFoundException:когданаходится в банке, переданной в кластер - PullRequest
0 голосов
/ 12 декабря 2018

Я могу запустить приложение Spark, которое я написал в Scala локально:

sbt run ...

, и оно работает нормально из командной строки без ошибок.

Когда я «отправляю искру» тому же приложению Spark, которое я написал в Scala, в кластер 2.6.0, следующим образом:

spark-submit --class MyTest --master spark://my-spark-01a:7077 --deploy-mode cluster --supervise --executor-memory 20G --total-executor-cores 100 --jars $IGNITE_JARS,/home/ubuntu/tmp/mytest-assembly-0.3.1.1.jar  /home/ubuntu/tmp/mytest-assembly-0.3.1.1.jar

... Я вижу следующую ошибку вstderr из Spark Cluster

18/12/12 00:41:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
18/12/12 00:41:24 INFO spark.SecurityManager: Changing view acls to: ubuntu
18/12/12 00:41:24 INFO spark.SecurityManager: Changing modify acls to: ubuntu
18/12/12 00:41:24 INFO spark.SecurityManager: Changing view acls groups to: 
18/12/12 00:41:24 INFO spark.SecurityManager: Changing modify acls groups to: 
18/12/12 00:41:24 INFO spark.SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users  with view permissions: Set(ubuntu); groups with view permissions: Set(); users  with modify permissions: Set(ubuntu); groups with modify permissions: Set()
18/12/12 00:41:24 INFO util.Utils: Successfully started service 'Driver' on port 50983.
18/12/12 00:41:24 INFO worker.WorkerWatcher: Connecting to worker spark://Worker@127.0.0.1:44303
Exception in thread "main" java.lang.ClassNotFoundException: MyTest

Класс 'MyTest' находится в моем /home/ubuntu/tmp/mytest-assembly-0.3.1.1.jar

Я просто не понимаю- это не имеет смысла.Почему Спарк ныть о моем основном классе не найден, когда он находится в банке, которую я разворачиваю?Что (еще) я забываю, чтобы заставить эту вещь просто работать?

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 12 декабря 2018

Когда вы отправляете в кластерном режиме, вам может понадобиться передать этот jar драйверу и исполнителям.Попробуйте добавить еще раз после добавления;

--conf spark.driver.extraClassPath=/your/file.jar
--conf spark.executor.extraClassPath=/your/file.jar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...