Сбой Apache Spark при попытке запустить исполнителя на рабочем столе

Фон

Я сражался с Apache Spark и разработал большинство ошибок, кроме одного. У меня есть Мастер и один Раб. Я могу запустить мастер через

./sbin/start-master.sh

а затем я могу подключиться к нему из подчиненного устройства

JAVA_OPTS="-Xmx10g" ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://10.17.16.43:7077

Затем я вижу сообщение об успешном завершении

14/08/25 08:47:04 INFO worker.Worker: Successfully registered with master spark://10.17.16.43:7077

Все эти ошибки повторяемы (я был на этом некоторое время). Я могу полностью подключиться к мастеру из раба, как это упоминается в большинстве других руководств. SSH настроен на отсутствие паролей между ведущим и подчиненным (ключи RSA), как упоминалось в других местах.

У меня есть функция spark/conf/spark-env.sh для следующего. Есть больше строк, которые прокомментированы

export SPARK_DAEMON_JAVA_OPTS+=" -Dspark.local.dir=/mnt/spark,/mnt2/spark -Dspark.akka.logLifecycleEvents=true"
export SPARK_LOCAL_IP=`ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' | head -1`
export SPARK_MASTER_IP=$SPARK_LOCAL_IP
export SPARK_MASTER_WEBUI_PORT=8090
export SPARK_WORKER_CORES=1

Я вытащил те из разных учебников в надежде, что они что-то исправит.

Вот мой мастер /etc/hosts

127.0.0.1       localhost
10.17.16.43     aidan-workstation
10.17.16.49     ubuntu

И ведомый

127.0.0.1   localhost
10.17.16.49 ubuntu
10.17.16.43 aidan-workstation

Ошибка

Когда я запускаю ./bin/spark-shell

Я получаю следующее в мастер-терминале (только что отправил его конец, полный вывод здесь)

14/08/25 08:58:25 INFO client.AppClient$ClientActor: Executor added: app-20140825085822-0002/8 on worker-20140825084704-ubuntu-49237 (ubuntu:49237) with 8 cores
14/08/25 08:58:25 INFO cluster.SparkDeploySchedulerBackend: Granted executor ID app-20140825085822-0002/8 on hostPort ubuntu:49237 with 8 cores, 512.0 MB RAM
14/08/25 08:58:25 INFO client.AppClient$ClientActor: Executor updated: app-20140825085822-0002/8 is now RUNNING
14/08/25 08:58:25 INFO client.AppClient$ClientActor: Executor updated: app-20140825085822-0002/8 is now FAILED (Command exited with code 1)
14/08/25 08:58:25 INFO cluster.SparkDeploySchedulerBackend: Executor app-20140825085822-0002/8 removed: Command exited with code 1
14/08/25 08:58:25 INFO client.AppClient$ClientActor: Executor added: app-20140825085822-0002/9 on worker-20140825084704-ubuntu-49237 (ubuntu:49237) with 8 cores
14/08/25 08:58:25 INFO cluster.SparkDeploySchedulerBackend: Granted executor ID app-20140825085822-0002/9 on hostPort ubuntu:49237 with 8 cores, 512.0 MB RAM
14/08/25 08:58:25 INFO client.AppClient$ClientActor: Executor updated: app-20140825085822-0002/9 is now RUNNING
14/08/25 08:58:25 INFO client.AppClient$ClientActor: Executor updated: app-20140825085822-0002/9 is now FAILED (Command exited with code 1)
14/08/25 08:58:25 INFO cluster.SparkDeploySchedulerBackend: Executor app-20140825085822-0002/9 removed: Command exited with code 1
14/08/25 08:58:25 ERROR client.AppClient$ClientActor: Master removed our application: FAILED; stopping client
14/08/25 08:58:25 WARN cluster.SparkDeploySchedulerBackend: Disconnected from Spark cluster! Waiting for reconnection...

И в то же время ведомые выходы (хвост также полный выход здесь)

14/08/25 09:04:18 INFO worker.ExecutorRunner: Launch command: "/usr/lib/jvm/java-8-oracle/bin/java" "-cp" ":/home/hduser/spark/conf:/home/hduser/spark/assembly/target/scala-2.10/spark-assembly_2.10-0.9.2-hadoop2.2.0.jar:/home/hduser/hadoop/etc/hadoop" "-Xms512M" "-Xmx512M" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "akka.tcp://[email protected]:60456/user/CoarseGrainedScheduler" "7" "ubuntu" "8" "akka.tcp://[email protected]:55553/user/Worker" "app-20140825090434-0003"
14/08/25 09:04:18 INFO worker.Worker: Executor app-20140825090434-0003/7 finished with state FAILED message Command exited with code 1 exitStatus 1
14/08/25 09:04:18 INFO worker.Worker: Asked to launch executor app-20140825090434-0003/8 for Spark shell
14/08/25 09:04:18 INFO worker.ExecutorRunner: Launch command: "/usr/lib/jvm/java-8-oracle/bin/java" "-cp" ":/home/hduser/spark/conf:/home/hduser/spark/assembly/target/scala-2.10/spark-assembly_2.10-0.9.2-hadoop2.2.0.jar:/home/hduser/hadoop/etc/hadoop" "-Xms512M" "-Xmx512M" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "akka.tcp://[email protected]:60456/user/CoarseGrainedScheduler" "8" "ubuntu" "8" "akka.tcp://[email protected]:55553/user/Worker" "app-20140825090434-0003"
14/08/25 09:04:19 INFO worker.Worker: Executor app-20140825090434-0003/8 finished with state FAILED message Command exited with code 1 exitStatus 1
14/08/25 09:04:19 INFO worker.Worker: Asked to launch executor app-20140825090434-0003/9 for Spark shell
14/08/25 09:04:19 INFO worker.ExecutorRunner: Launch command: "/usr/lib/jvm/java-8-oracle/bin/java" "-cp" ":/home/hduser/spark/conf:/home/hduser/spark/assembly/target/scala-2.10/spark-assembly_2.10-0.9.2-hadoop2.2.0.jar:/home/hduser/hadoop/etc/hadoop" "-Xms512M" "-Xmx512M" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "akka.tcp://[email protected]:60456/user/CoarseGrainedScheduler" "9" "ubuntu" "8" "akka.tcp://[email protected]:55553/user/Worker" "app-20140825090434-0003"
14/08/25 09:04:19 INFO worker.Worker: Executor app-20140825090434-0003/9 finished with state FAILED message Command exited with code 1 exitStatus 1

Вы можете заметить, что время отключено. Это моя ошибка. Мне пришлось повторно запускать программы в разное время, чтобы получить чистый результат. Это не связано с программой.

Что я хочу

Пожалуйста, помогите мне выяснить, как подключить мой мастер и подчиненный, чтобы я мог запускать программы Scala в распределенной системе.

Спасибо заранее.

Ответ 1

Я отмечаю из ваших журналов, что akka использует простое имя хоста aidan-workstation, а не полное доменное имя, например aidan-workstation.acme.com

akka.tcp://[email protected]:60456/user/CoarseGrainedScheduler
akka.tcp://[email protected]:55553/user/Worker

Из этого сообщения пользователя это может быть проблема, с которой вы сталкиваетесь

Мне пришлось установить SPARK_MASTER_IP в conf/start-master.sh для имени хоста -f вместо имени хоста, поскольку akka, похоже, не работает должным образом с хостом names/ip, для этого требуются полные имена доменов.

Вы можете попробовать изменить файл хостов, чтобы включить поддельное доменное имя.