У меня есть установка 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)