Отказ в соединении: spark.example.com/xxx.xxx.xxx.xxx:7077 при попытке подключения к удаленному Spark Cluster - PullRequest
0 голосов
/ 31 августа 2018

У меня есть установка Spark Standalone Cluster на машине EC2. Кластер содержит в общей сложности 1 главный и 2 рабочих узла. Когда я пытаюсь отправить задание Spark с локального компьютера на удаленный мастер с помощью оболочки PySpark, я получаю сообщение об ошибке соединения отказано.

На моей локальной машине, пытающейся подключиться к удаленному Spark Master (экземпляр EC2):

pyspark --master spark://spark.example.com:7077

При выполнении вышеуказанной команды на локальном компьютере я получаю следующую ошибку:

Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: test.example.com/52.66.70.6:7077
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:323)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
... 1 more
Caused by: java.net.ConnectException: Connection refused
    ... 11 more
2018-08-31 08:58:09 ERROR StandaloneSchedulerBackend:70 - Application has been killed. Reason: All masters are unresponsive! Giving up.
2018-08-31 08:58:09 WARN  StandaloneSchedulerBackend:66 - Application ID is not initialized yet.
2018-08-31 08:58:09 WARN  StandaloneAppClient$ClientEndpoint:66 - Drop UnregisterApplication(null) because has not yet connected to master
2018-08-31 08:58:09 WARN  MetricsSystem:66 - Stopping a MetricsSystem that is not running
2018-08-31 08:58:10 ERROR SparkContext:91 - Error initializing SparkContext.

Когда я запускаю ту же команду, выполнив вход в один из моих узлов Spark, он успешно подключается.

/ etc / hosts file:

127.0.0.1 localhost
127.0.0.1 spark.example.com #Changing this to floating/Public IP throws "Cannot Bind to port 7077" error
127.0.0.1 slave1

spark-env.sh

MASTER_HOST=spark.example.com

Входящая группа безопасности EC2 настроена для разрешения «ВСЕГО трафика» на «ВСЕ порты» из «Где угодно в Интернете»

Ниже lsof войти в мой узел Spark Master (экземпляр EC2)

lsof -i :7077
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    20671 ubuntu  237u  IPv6  79763      0t0  TCP localhost:7077 (LISTEN)
java    20671 ubuntu  249u  IPv6  80993      0t0  TCP localhost:7077->localhost:42553 (ESTABLISHED)
java    20671 ubuntu  250u  IPv6  80994      0t0  TCP localhost:7077->localhost:42554 (ESTABLISHED)
java    20910 ubuntu  252u  IPv6  80992      0t0  TCP localhost:42554->localhost:7077 (ESTABLISHED)
java    20912 ubuntu  251u  IPv6  80991      0t0  TCP localhost:42553->localhost:7077 (ESTABLISHED)

1 Ответ

0 голосов
/ 31 августа 2018

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

Когда я настраиваю свои правила входящей безопасности для Spark в EC2, я открываю все порты (TCP и UDP), но в качестве источника устанавливаю общедоступный IP-адрес моей системы. Это означает, что только компьютеры в моей сети могут получить доступ к системе.

Если вы хотите усилить безопасность, включите следующие порты:

8080 - Spark UI

4040 - Spark Work UI

8088 - sparklr UI

7077 - интерфейс отправки Spark

Примечание. Необходимо включить все порты в вашей группе безопасности между ведущим и подчиненным устройствами. Они должны иметь возможность открыто общаться друг с другом.

...