Spark独立群集不接受连接

时间:2015-09-27 12:15:00

标签: azure apache-spark

我正在尝试在Azure VM上运行最简单的Spark独立群集。我正在运行一个主服务器,一个工作程序在同一台机器上运行。我可以完美地访问Web UI,并且可以看到该worker正在向master注册。

但我无法在笔记本电脑上使用spark-shell连接到此群集。当我查看日志时,我看到了

15/09/27 12:03:33 ERROR ErrorMonitor: dropping message [class akka.actor.ActorSelectionMessage] 
for non-local recipient [Actor[akka.tcp://sparkMaster@40.113.XXX.YYY:7077/]] 
arriving at [akka.tcp://sparkMaster@40.113.XXX.YYY:7077] inbound addresses 
are [akka.tcp://sparkMaster@somehostname:7077]
akka.event.Logging$Error$NoCause$

现在我认为发生这种情况的原因是,在Azure上,每个虚拟机都位于一种防火墙/负载均衡器之后。我正在尝试使用Azure告诉我的公共IP(40.113.XXX.YYY)进行连接,但Spark拒绝接受连接,因为这不是接口的IP。

由于这个IP不属于机器,我也无法绑定到接口。

我如何让Spark接受这些数据包呢?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试在spark-env.sh而不是hostname中将IP地址设置为MASTER_IP。

答案 1 :(得分:0)

我遇到了同样的问题,并且能够通过获取运行spark的命令行的已配置--ip参数来解决:

$ ps aux | grep spark
[bla bla...] org.apache.spark.deploy.master.Master --ip YOUR_CONFIGURED_IP [bla bla...]

然后,我可以使用完全YOUR_CONFIGURED_IP相同的字符串连接到我的群集:

spark-shell --master spark://YOUR_CONFIGURED_IP:7077