Spark Master и рабочие не подключаются через локальные адреса
После установки пакета Spark в Linux (SuSE SLES 12) я вижу следующую ошибку подключения ("не удалось подключиться"), которая помимо подчиненного процесса Spark также влияет на примеры "pyspark", отклоняя подключения. Любой совет, как активировать подключение порта 7077 через адреса локального хоста, приветствуется. Частично проблема может быть в настройках брандмауэра Linux по умолчанию.
Команды брандмауэра для открытия адресов Localhost:
sudo iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -s 127.0.0.1 -d zbra2016 -j ACCEPT
Запуск Spark Master - команды:
export SPARK_LOCAL_IP=zbra2016
./sbin/stop-master.sh
./sbin/start-master.sh
16/04/19 10:12:29 INFO Master: Registered signal handlers for [TERM, HUP, INT]
16/04/19 10:12:29 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/04/19 10:12:29 INFO SecurityManager: Changing view acls to: linux1
16/04/19 10:12:29 INFO SecurityManager: Changing modify acls to: linux1
16/04/19 10:12:29 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(linux1); users with modify permissions: Set(linux1)
16/04/19 10:12:30 INFO Utils: Successfully started service 'sparkMaster' on port 7077.
16/04/19 10:12:30 INFO Master: Starting Spark master at spark://zbra2016:7077
16/04/19 10:12:30 INFO Master: Running Spark version 1.6.1
16/04/19 10:12:30 WARN Utils: Service 'MasterUI' could not bind on port 8080. Attempting port 8081.
16/04/19 10:12:30 INFO Utils: Successfully started service 'MasterUI' on port 8081.
16/04/19 10:12:30 INFO MasterWebUI: Started MasterWebUI at http://localhost:8081
16/04/19 10:12:30 INFO Utils: Successfully started service on port 6066.
16/04/19 10:12:30 INFO StandaloneRestServer: Started REST server for submitting applications on port 6066
16/04/19 10:12:31 INFO Master: I have been elected leader! New state: ALIVE
Запуск Spark Worker - команды:
./sbin/stop-slave.sh
./sbin/start-slave.sh spark://zbra2016:7077
Logfile отображает сообщение "Ошибка подключения":
/data/spark/spark/logs/spark-linux1-org.apache.spark.deploy.worker.Worker-1-zbra2016.out
16/04/19 10:15:46 INFO Worker: Retrying connection to master (attempt # 1)
16/04/19 10:15:46 INFO Worker: Connecting to master zbra2016:7077...
16/04/19 10:15:47 WARN Worker: Failed to connect to master zbra2016:7077
java.io.IOException: Failed to connect to zbra2016/127.0.0.1:7077
Тестирование возможности подключения псевдонима: zbra2016 = localhost
linux1@zbra2016:/data/spark/spark> ping zbra2016
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.022 ms
2 ответа
Мы только что нашли решение для этого в настройке брандмауэра Linux iptables. Я использовал следующую команду, чтобы открыть трафик localhost:
iptables -I INPUT 1 -p all -s localhost -d localhost -j ACCEPT
Теперь рабочий процесс может подключаться к мастеру через локальные порты.
Вы можете изменить настройки, разрешив порт 7077 через брандмауэр. Попробуйте: sudo ufw allow 7077