我家里有两台Mac(OS X EI Caption),都连接到同一个wifi。我想在这两台计算机上安装一个spark集群(有两个worker)。
Mac1(192.168.1.2)是我的主人,使用Spark 1.5.2,它运行良好,我可以在http://localhost:8080/看到Spark UI(我也看到了spark:// Mac1:7077 )
我也在这台机器上运行了一个奴隶(Mac1),我在Spark用户界面下看到它。
然后,我在第二台机器(Mac2)上复制了Spark,我试图通过这个命令在Mac2(192.168.2.9)上运行另一个Slave:
./sbin/start-slave.sh spark://Mac1:7077
但是,它不起作用:查看它显示的日志:
Failed to connect to master Mac1:7077
Actor not found for: ActorSelection[Anchor(akka.tcp://sparkMaster@Mac1:7077/),Path(/User/Master)]
网络方面,在Mac1,我可以通过SSH连接到Mac2,反之亦然,但我无法telnet到Mac1:7077。
如果你帮助我解决这个问题,我将不胜感激。
答案 0 :(得分:3)
tl; dr 使用-h
的{{1}}选项,即./sbin/start-master.sh
或者,您可以改为./sbin/start-master.sh -h Mac1
。
原因是Spark中对端口的绑定对使用的名称和IP非常敏感。所以,在你的情况下,192.168.1.2!= Mac1。它们在Spark中是不同的“名称”,这就是为什么你可以成功使用./sbin/start-slave.sh spark://192.168.1.2:7077
,因为它在操作系统上使用名称解析器,而它在上述条件成立的Spark级别不起作用,即“名称”不是相等。
答案 1 :(得分:0)
可能是mac上的网络/防火墙问题。
另外,您复制/粘贴参考端口7070的错误消息是这个问题吗?
答案 2 :(得分:0)
使用conf / slaves中的IP地址以某种方式工作,但我必须在任何地方使用IP来寻址集群而不是主机名。
SPARK + Standalone Cluster: Cannot start worker from another machine