2016-07-13 1 views
0

Я пытаюсь запустить потоковое искровое словосочетание на Мезосе. Когда я пытаюсь развернуть код в кластере и запущен, файлы jar, перечисленные в файле -jars, не будут скопированы в песочницу. Если я работаю в клиентском режиме, они копируются и мой код запускается. Работает ли -jars с кластером Mesos -deploy?Запуск Spark на Mesos с использованием --jars

Я запускаю Apache Spark 2.0.0-preview и Mesos 0.28.

Диспетчер мезос от Искры бежит вместе с моим хозяином и рабом из Мезоса. Кроме того, Zookeeper тоже работает. Ниже приведен запрос об искрообразовании.

(работает от $ SPARK_HOME)

bin/spark-submit --class my.class.name --master mesos://<ip>:7077 \ 
--deploy-mode cluster --num-executors 1 --executor-memory 512M \ 
--total-executor-cores 1 --jars /full/path/jar1.jar,/full/path/jar2.jar \ 
project.jar parm1 parm2 parm3 parm4 

Это приводит к ошибке, о том, что он не может найти класс в jar1. Наконец, я могу запустить SparkPi из примера jar, используя тот же синтаксис, что и выше (без -jars), и все работает отлично.

ответ

1

Я думаю, что вы должны иметь свои банки в доступном месте для исполнителей см

Обратите внимание, что банки или питон файлы, которые передаются искровыми представить должны быть URI, доступными ведомыми Mesos, поскольку драйвер Spark не загружает автоматически локальные банки.

+0

Я забыл упомянуть, что все работает локально в моем ящике. Я предоставляю полный путь к банке в парме jjars. Я попытался использовать HDFS вместо простого файла, и он не добавил их в песочницу. – Crackerman

+0

Это не имеет значения в этом случае ИМО. Думаю, вам придется загружать банки на веб-сервер. Вы работаете в режиме кластера, а затем должны применяться указанные ограничения. Вы можете загружать банки на простой веб-сервер (работает как приложение Docker Marathon), например. https://github.com/tobilg/docker-mini-webserver и сопоставьте папку хоста, содержащую банки ... – Tobi