You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark集群模式下Driver节点地址绑定错误问题咨询

问题排查:Spark Cluster模式下Driver在非提交节点的地址绑定错误

环境信息

  • 集群部署:VMware托管的3节点Ubuntu 22.04实例,内存分配为6G、6G、4G
  • 软件栈版本:Java 11、Hadoop 3.3.4、Spark 3.4.3、Scala 2.13.x、Delta Lake 2.4.x
  • 现状:Client模式下任意节点提交作业均正常,Executor分配与运行无异常;Cluster模式下仅当Driver被调度至非作业提交节点时触发地址绑定错误,已通过命令for port in {8090..8100}; do echo "Checking port $port"; sudo lsof -i :$port; done确认目标端口处于LISTEN状态

排查方向与操作步骤

1. 修正Spark Driver的网络绑定配置

Cluster模式下Driver运行在Worker节点,需确保其绑定的是集群内可被其他节点访问的地址,而非回环地址:

  • 打开spark-defaults.conf,检查以下参数:
    • spark.driver.host:确认是否设置为节点的集群内可访问IP(而非127.0.0.1),若未配置,Spark可能因多网卡场景自动探测错误
    • spark.driver.bindAddress:若显式配置,需确保指向节点的有效物理网卡地址
  • 示例配置:
    spark.driver.host=192.168.x.x
    spark.driver.bindAddress=192.168.x.x
    

2. 验证节点间网络与端口权限

即使端口处于LISTEN状态,防火墙或虚拟机网络规则可能阻断通信:

  • 检查Ubuntu本地防火墙:执行sudo ufw status,确认8090-8100端口允许集群内节点间的TCP/UDP流量
  • 测试节点连通性:在Driver调度节点ping其他Worker/Master节点IP,确保网络无丢包
  • 检查VMware网络设置:确认虚拟机使用的网络模式(如桥接)允许节点间直接通信,无NAT隔离限制

3. 核对Spark集群通信配置

  • 打开spark-env.sh,确认SPARK_MASTER_HOST设置为Master节点的集群内IP(而非localhost),确保Worker能正常注册、Driver能与Master建立连接
  • 检查Worker节点的spark-env.sh,确认SPARK_WORKER_HOST配置为自身集群内IP,避免Worker使用回环地址注册

4. 分析Driver启动日志

Cluster模式下Driver日志存储在Worker节点的$SPARK_HOME/work/[app-id]/driver目录下,搜索bind、Address already in use或Connection refused关键字:

  • 若日志显示绑定127.0.0.1失败,说明Driver默认使用回环地址,需手动指定spark.driver.host
  • 若显示端口被占用,即使lsof未检测到,可能是端口处于TIME_WAIT状态,可调整spark.driver.port指定未被使用的端口范围

5. YARN模式额外排查(若适用)

如果使用YARN作为资源管理器,需检查YARN配置:

  • 打开yarn-site.xml,确认yarn.nodemanager.address、yarn.nodemanager.webapp.address设置为节点集群内IP
  • 检查yarn.nodemanager.container-executor.class配置,确保容器网络无隔离限制

内容的提问来源于stack exchange,提问作者Rene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:59:50