Spark Worker无法连接Master节点,配置SPARK_MASTER_HOST及重启服务无效
问题排查与解决步骤
从报错日志核心提示Connection refused: <SPARK_ID>/192.168.1.175:7077可知,Worker节点无法和Master节点的7077端口建立TCP连接,按以下顺序排查即可解决:
第一步:验证Master端口监听状态
在Master节点执行如下命令,确认7077端口的绑定状态:
# 可任选netstat或ss命令 netstat -tunlp | grep 7077 ss -tunlp | grep 7077
- 若返回结果中监听地址为
127.0.0.1/localhost,说明Master仅绑定了本地回环地址,外部节点无法访问。需要重新修改spark-env.sh的SPARK_MASTER_HOST为Master的对外可用IP(即报错日志中的192.168.1.175),完全停止旧Master进程后再重启生效 - 若监听地址为
0.0.0.0或正确的对外IP,进入下一步排查
第二步:验证节点网络与端口连通性
在Worker节点执行如下命令测试连通性:
# 先测试基础网络连通性 ping 192.168.1.175 # 再测试7077端口连通性,可任选telnet或nc命令 telnet 192.168.1.175 7077 nc -zv 192.168.1.175 7077
- 若ping不通,检查两个节点的网卡配置、路由规则、物理网络连接是否正常
- 若ping通但端口连接失败,说明Master节点的防火墙/安全组拦截了7077端口,按需放开即可:
- 主机为firewalld防火墙:
# 临时放开端口 firewall-cmd --add-port=7077/tcp # 永久生效需执行以下两条 firewall-cmd --add-port=7077/tcp --permanent firewall-cmd --reload- 主机为iptables防火墙:
iptables -I INPUT -p tcp --dport 7077 -j ACCEPT service iptables save- 若为云服务器,需要额外在云平台的安全组配置中放开7077端口的入站规则
第三步:验证主机名解析配置
检查Worker节点的/etc/hosts文件,确认主机名<SPARK_ID>对应的IP是Master的正确IP192.168.1.175,避免解析到127.0.0.1或其他错误IP。也可以直接在启动Worker时用IP代替主机名,规避解析问题:
start-worker.sh spark://192.168.1.175:7077
第四步:验证版本一致性
确认Master和Worker节点部署的Spark版本完全一致,不同版本的Spark RPC协议不兼容也会触发连接被拒错误。
结果验证
完成上述调整后,重启Master和Worker进程,访问Master的8080端口WebUI,即可在Workers列表看到正常注册的Worker节点。
内容的提问来源于stack exchange,提问作者fri6aug
相关产品推荐
相关产品推荐

