我正在尝试按照官方文档设置Spark独立群集。
我的主人在运行ubuntu的本地虚拟机上,我也有一名工作人员在同一台机器上运行。它正在连接,我能够在主服务器的WebUI中看到它的状态。
这是WebUi图像 -
但是当我尝试从另一台机器连接一个奴隶时,我无法做到。
当我从另一台机器启动时,这是我在工作人员中获得的日志消息。
在更新conf \ slaves后,我尝试使用来自主服务器的start-slaves.sh
,并且还尝试从服务器中使用start-slave.sh spark://spark:7077
。
[主人主人 - 火花;工人hostanme - 工人]
15/07/01 11:54:16 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@spark:7077] has failed, address is now gated for [5000] ms. Reason is: [Association failed with [akka.tcp://sparkMaster@spark: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到主人时,这就是我得到的 -
root@worker:~# telnet spark 7077
Trying 10.xx.xx.xx...
Connected to spark.
Escape character is '^]'.
Connection closed by foreign host.
Telnet似乎可以正常工作,但连接一旦建立就会关闭。这可能与问题有关吗?
我在两台机器上的/ etc / hosts中添加了主从IP地址。 我按照SPARK + Standalone Cluster: Cannot start worker from another machine给出的所有解决方案 但他们没有为我工作。
我在两台机器的spark-env.sh中设置了以下配置 -
导出SPARK_MASTER_IP = spark
导出SPARK_WORKER_PORT = 44444
非常感谢任何帮助。
答案 0 :(得分:21)
我遇到了与你完全相同的问题,并且只是弄清楚如何让它发挥作用。
问题是你的spark master正在侦听主机名,在你的示例 spark 中,这会导致同一主机上的worker能够成功注册,但是使用命令{{1 }}
解决方法是确保在文件 conf / spark-env.sh 中使用ip指定值 SPARK_MASTER_IP
start-slave.sh spark://spark:7077
在主节点上,然后正常启动spark master。您可以打开Web GUI以确保启动后火花主控显示为 spark:// YOUR_HOST_IP:7077 。然后,在另一台命令为 SPARK_MASTER_IP=<your host ip>
的计算机上
应该开始并注册工人成功掌握。
希望它能帮到你
答案 1 :(得分:12)
它取决于你的火花版本,它需要不同的配置。
如果你的spark版本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
添加这些行后运行spark:
./ sbin目录/ spark-all.sh
如果你做得对,你可以在<your_host_ip>:8080
中看到火花主网址为:spark://<your_host_ip>:7077
BeCarefule your_host_ip,不应该是localhost
,而且必须与Your host ip
conf/spark-env.sh
完全相同
毕竟你可以通过以下命令将另一台机器连接到主机:
./ sbin / start-slave.sh spark:// your_host_ip:7077
答案 2 :(得分:1)
我刚推出自己的版本为2.10的spark集群。我解决问题的方法如下:
./sbin/start-master.sh -h <your_ip>
答案 3 :(得分:0)
以上所有解决方案均不适用于我,但我发现了另一种解决问题的方法:Stackoverflow: spark worker not connecting to master
请在您的主节点上检查配置文件“ spark-env.sh ”。您是否已将 SPARK_MASTER_HOST 变量设置为主节点的IP地址?如果没有,请尝试设置它并重新启动主服务器和从服务器。例如,如果主节点的IP为192.168.0.1,则其中应该有SPARK_MASTER_HOST = 192.168.0.1。请注意,您无需在从站上设置此变量。
答案 4 :(得分:0)
在 spark/conf 目录下,打开文件 spark-defaults.conf.template
进行编辑。
添加以下行:
spark.master spark://your hostname:7077
要查找您的主机名,请在命令提示符中输入 hostname
。