2015-09-27 150 views
1

我试图在Azure VM上运行最简单的Spark独立群集。我正在运行一台主服务器,同一台机器上运行单个工人。我可以完美地访问Web UI,并且可以看到工作人员已经注册到了主人。Spark独立群集不接受连接

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

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

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

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

我怎样才能让Spark接受这些数据包呢?

谢谢!

+0

你试过连接到Azure的VPN和使用私有IP连接到它呢? – cjcroix

+0

什么是IP火花? (netstat -l | grep 7077) –

回答

0

您可以尝试将ip地址设置为MASTER_IP,其中spark-env.sh代替主机名。

+0

在大多数情况下,这是首先要检查的。 –

0

我得到了同样的问题,并能够通过获取配置--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