Apache spark Spark独立群集-从机未连接到主机

Apache spark Spark独立群集-从机未连接到主机,apache-spark,Apache Spark,我正试图按照官方文档设置Spark独立集群 我的主人在一个运行ubuntu的本地vm上,我还有一个工人在同一台机器上运行。它正在连接,我可以在主机的WebUI中看到它的状态 这是WebUi图像- 但当我试图从另一台机器连接一个从机时,我无法做到这一点 这是我从另一台机器启动时在worker中收到的日志消息。 在更新conf\slaves和start-slave.sh之后,我尝试从主服务器使用start-slaves.shspark://spark:7077从从机上 [主主机名-spark;工作

我正试图按照官方文档设置Spark独立集群

我的主人在一个运行ubuntu的本地vm上,我还有一个工人在同一台机器上运行。它正在连接,我可以在主机的WebUI中看到它的状态

这是WebUi图像-

但当我试图从另一台机器连接一个从机时,我无法做到这一点

这是我从另一台机器启动时在worker中收到的日志消息。 在更新conf\slaves和
start-slave.sh之后,我尝试从主服务器使用
start-slaves.sh
spark://spark:7077
从从机上

[主主机名-spark;工作者主机名-工作者]

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
当我尝试从奴隶到主人的远程登录时,这就是我得到的-

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地址和从IP地址。 我遵循了会议上给出的所有解决方案 但他们没有为我工作

我在两台机器的spark-env.sh中都设置了以下配置-

导出SPARK\u MASTER\u IP=SPARK

导出SPARK\u WORKER\u端口=44444


非常感谢您的帮助。

我遇到了与您完全相同的问题,我只是想知道如何让它工作

问题是spark主机正在侦听主机名,在您的示例中是spark,这会导致同一主机上的工作进程能够成功注册,但无法使用命令
start-slave.sh从另一台机器注册spark://spark:7077

解决方案是确保在conf/SPARK-env.sh文件中用IP指定SPARK\u MASTER\u IP值

SPARK\u MASTER\u IP=
在主节点上,按正常方式启动spark主节点。您可以打开web GUI以确保spark master显示为spark://YOUR_HOST_IP:7077 开始之后。然后,在另一台机器上,使用命令
start-slave.sh spark://:7077
应成功启动并注册worker以掌握


希望它能帮助您

这取决于您的spark版本,它需要不同的配置。 如果您的spark版本1.6将这一行添加到
conf/spark env.sh
,以便另一台机器可以连接到master

SPARK\u MASTER\u IP=您的\u主机\u IP

如果您的spark版本是2.x,则将这些行添加到
conf/spark env.sh

SPARK\u MASTER\u HOST=您的\u HOST\u ip

SPARK\u LOCAL\u IP=您的\u主机\u IP

添加这些线路后,运行spark:

/sbin/spark-all.sh

如果你做对了,你可以在
:8080
中看到spark主url是:
spark://:7077

因为您的主机ip不应该是
localhost
,而且必须是您在
conf/spark env.sh

毕竟,您可以使用以下命令将另一台机器连接到主机:

/sbin/start-slave.shspark://your_host_ip:7077


我刚刚推出了自己的spark cluster 2.10版。我解决问题的方法如下:

 ./sbin/start-master.sh -h <your_ip>
/sbin/start-master.sh-h

以上所有解决方案对我都不起作用,但我找到了另一种解决问题的方法:

请检查主节点上的配置文件“spark env.sh”。您是否已将SPARK\u MASTER\u HOST变量设置为主节点的IP地址?如果没有,请尝试设置并重新启动主设备和从设备。例如,如果主节点的IP为192.168.0.1,则其中应包含SPARK\u master\u HOST=192.168.0.1。请注意,您不需要在从属服务器上设置此变量

  • 在spark/conf目录下,打开要编辑的文件
    spark defaults.conf.template

  • 添加以下行:

    spark.master spark://your hostname:7077 
    

  • 要查找主机名,请在命令提示符下键入
    hostname

    解决方案不起作用,但至少给我一个不同的错误。您是否对从属计算机进行了无密码身份验证?。如果不是主设备,则不可能进行从设备通信。在最新版本上更改为SPARK_MASTER_HOST这在SPARK 2.0.1上也适用。在此更改之前,URL为spark://spark-master:7077 在那之后spark://IP:7077. 谢谢这个答案让我省去了很多挫折。在过去的两天里,我一直在尝试调试该问题,但在SPARK版本2.x中,我看不到SPARK_MASTER_IP参数已更改为SPARK_MASTER_HOST。在哪里都没有提到这件事,真是可笑。
    spark.master spark://your hostname:7077