Apache Spark - 工人拒绝连接

时间:2014-07-22 07:57:06

标签: akka apache-spark

嗨,我是apache spark的新手,我正在努力学习它

在创建新的独立群集时,我遇到了此错误。

我启动了我的主人,它在7077端口处于活动状态,我可以在ui(端口8080)中看到

使用命令

启动服务器时
 ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://192.168.0.56:7077

我遇到连接拒绝错误

14/07/22 13:18:30 ERROR EndpointWriter: AssociationError [akka.tcp://sparkWorker@node-        physical:55124] -> [akka.tcp://sparkMaster@192.168.0.56:7077]: Error [Association failed     with [akka.tcp://sparkMaster@192.168.0.56:7077]] [
akka.remote.EndpointAssociationException: Association failed with [akka.tcp://sparkMaster@192.168.0.56:7077]
Caused by: akka.remote.transport.netty.NettyTransport$$anonfun$associate$1$$anon$2:     Connection refused: /192.168.0.56:7077

请帮我解决这个问题,我在这里已经很长时间了。

我希望这些信息足够了。请帮忙

9 个答案:

答案 0 :(得分:4)

就我而言,我去了/ etc / hosts并且:

  • 删除了127.0.1.1的行并且它有效。
  • 写了#34; MASTER_IP MACHINE_NAME"

答案 1 :(得分:4)

尝试" ./ sbin / start-master -h"。当我将主机名指定为IP地址时,它可以工作。

答案 2 :(得分:1)

检查防火墙是否已关闭,因为它可能会暂时关闭防火墙阻止工作人员连接:

$ sudo service iptables stop

或永久:

$ sudo chkconfig iptables off

答案 3 :(得分:1)

似乎火花对IP和机器名称非常挑剔。因此,在启动主站时,它将使用您的机器名称来注册spark master。如果您的工人无法获得该名称,则几乎无法联系到该名称。

一种解决方法,就是像这样开始你的主人:

SPARK_MASTER_IP=YOUR_SPARK_MASTER_IP ${SPARK_HOME}/sbin/start-master.sh

然后,您将能够像这样连接您的奴隶

${SPARK_HOME}/sbin/start-slave.sh spark://YOUR_SPARK_MASTER_IP:PORT

我希望它有所帮助!

答案 4 :(得分:1)

更改 SPARK_MASTER_HOST =<主节点的 spark-env.sh 中的ip>

然后重新启动主服务器,如果您执行grep该过程,您将看到它从

更改

java -cp / spark / conf /:/ spark / jars / * -Xmx1g org.apache.spark.deploy.master.Master --host <主机名> --port 7077 --webui-port 8080

java -cp / spark / conf /:/ spark / jars / * -Xmx1g org.apache.spark.deploy.master.Master --host < HOST IP> --port 7077 --webui-port 8080

答案 5 :(得分:0)

是否在etc / hosts中添加了master和worker节点的条目,如果没有在所有机器中添加每台机器的ip和主机名映射。

答案 6 :(得分:0)

对于Windows:spark-class org.apache.spark.deploy.master.Master -h [要绑定的接口IP]

答案 7 :(得分:0)

我在docker容器中遇到了类似的问题,我通过将master和driver的IP设置为localhost来解决了这个问题,

    set('spark.master.hostname' ,'localhost')
    set('spark.driver.hostname', 'localhost')

答案 8 :(得分:0)

我没有DNS,并且在主节点的/etc/hosts中添加了条目,以引用所有主节点和工作节点的IP和主机名。在工作节点中,我在/etc/hosts中添加了主节点的IP和主机名。