Spark Standalone Cluster - подчиненный не подключается к мастеру
Я пытаюсь настроить автономный кластер Spark после официальной документации.
Мой мастер находится на локальном vm, запущенном ubuntu, и у меня также есть один рабочий, работающий на том же компьютере. Он подключается, и я могу видеть его статус в WebUI мастера.
Вот изображение WebUi -
![enter image description here]()
Но когда я пытаюсь подключить ведомое устройство с другого компьютера, я не могу этого сделать.
Это сообщение журнала, которое я получаю у рабочего, когда я начинаю с другой машины.
Я попытался использовать start-slaves.sh
от мастера после обновления conf\slaves, а также start-slave.sh spark://spark:7077
от подчиненного устройства.
[Главное имя хоста - искра; Рабочий хозяин - работник]
15/07/01 11:54:16 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://[email protected]:7077] has failed, address is now gated for [5000] ms. Reason is: [Association failed with [akka.tcp://[email protected]:7077]].
15/07/01 11:54:59 ERROR Worker: All masters are unresponsive! Giving up.
15/07/01 11:54:59 INFO Utils: Shutdown hook called
Когда я пытаюсь подключиться к telnet от подчиненного устройства к мастеру, это то, что я получаю -
[email protected]:~# telnet spark 7077
Trying 10.xx.xx.xx...
Connected to spark.
Escape character is '^]'.
Connection closed by foreign host.
Telnet, похоже, работает, но соединение закрывается, как только оно установлено. Может ли это иметь какое-то отношение к проблеме?
Я добавил основные и подчиненные IP-адреса в /etc/hosts на обеих машинах.
Я следил за всеми решениями, приведенными в SPARK + Standalone Cluster: не удается запустить сотрудника с другого компьютера
но они не работали для меня.
У меня есть следующий конфигурационный набор в spark-env.sh в обеих машинах -
экспорт SPARK_MASTER_IP = искра
export SPARK_WORKER_PORT = 44444
Любая помощь очень ценится.
Ответы
Ответ 1
Я сталкиваюсь с той же проблемой, что и вы, и просто выясняю, как заставить ее работать.
Проблема заключается в том, что ваш искровой мастер прослушивает имя хоста, в вашем примере Искра, что заставляет рабочего на том же хосте иметь возможность успешно регистрироваться, но с другого компьютера с командой start-slave.sh spark://spark:7077
./p >
Решение состоит в том, чтобы убедиться, что значение SPARK_MASTER_IP указано с ip в файле conf/spark-env.sh
SPARK_MASTER_IP=<your host ip>
на вашем хозяине node, и запустите свой искровой мастер как обычно. Вы можете открыть свой веб-gui, чтобы убедиться, что ваш искровой мастер появился как искра://YOUR_HOST_IP: 7077 после старта. Затем на другой машине с командой start-slave.sh spark://<your host ip>:7077
должен начать и зарегистрировать работника для успешного освоения.
Надеюсь, это поможет вам.
Ответ 2
Его зависит от вашей искровой версии, ей понадобится другая конф.
если ваша искровая версия 1.6 добавляет эту строку в conf/spark-env.sh
, чтобы другая машина могла подключиться к мастеру
SPARK_MASTER_IP = your_host_ip
и если ваша искровая версия - 2.x, добавьте эти строки в conf/spark-env.sh
SPARK_MASTER_HOST = your_host_ip
SPARK_LOCAL_IP = your_host_ip
после добавления этих строк исправить:
./SBIN/spark-all.sh
и если вы поступите правильно, вы можете увидеть в <your_host_ip>:8080
, что главный исходный url: spark://<your_host_ip>:7077
BeCarefule your_host_ip, не должен быть localhost
и должен быть точно Your host ip
, который вы установили в conf/spark-env.sh
В конце концов вы можете подключить другую машину к мастеру с помощью команды ниже:
./sbin/start-slave.sh Искра://your_host_ip: 7077
Ответ 3
Я только что запустил свой собственный искровой кластер с версией 2.10. То, как я решил свою проблему, следующее:
./sbin/start-master.sh -h <your_ip>
Ответ 4
Все приведенные выше решения не помогли мне, но я нашел еще один способ решения проблемы: fooobar.com/info/1663304/...
Пожалуйста, проверьте файл конфигурации " spark-env.sh " на вашем главном узле. Вы установили переменную SPARK_MASTER_HOST в IP-адрес главного узла? Если нет, попытайтесь установить его и перезапустите главный и подчиненные. Например, если IP-адрес вашего главного узла равен 192.168.0.1, у вас должно быть SPARK_MASTER_HOST = 192.168.0.1. Обратите внимание, что вам не нужно устанавливать эту переменную на своих подчиненных.