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

spark-shell以yarn为master启动时报SparkException: awaitResult异常

问题根因定位

核心报错为Connection refused: /192.168.29.57:33333,结合配置中spark.driver.port固定为33333的设定,问题本质是YARN中的ApplicationMaster(AM)无法和本地Spark Driver进程建立RPC通信,具体触发原因分为三类:

  • 本地防火墙/iptables规则拦截了33333端口的入站请求,YARN容器发起的连接被直接拒绝
  • hostname绑定配置错误,从启动日志的Your hostname, XXXXXX resolves to a loopback address: 127.0.1.1告警可以看出,本机hostname默认解析到环回地址,Spark自动选择了wifi0网卡的192.168.29.57,但如果YARN和该地址不在同一网段、或者本机没有在该地址上监听33333端口,就会导致连接失败
  • Spark Driver默认仅绑定环回地址127.0.0.1,你固定了driver端口为33333但没有指定driver绑定的对外地址,所以33333端口仅在127.0.0.1上监听,外部YARN容器无法通过192.168.29.57访问该端口
解决方案

按优先级逐一验证即可:

  1. 优先修复端口监听配置
    在spark-defaults.conf中追加如下配置,指定Driver绑定的对外IP:
spark.driver.host 192.168.29.57

修改后重新提交spark-shell任务测试。
2. 检查并放开本地防火墙规则
执行以下命令确认端口监听状态,放开相关Spark端口的入站请求:

# 查看端口监听情况,确认33333是否绑定在0.0.0.0或者192.168.29.57上
netstat -tunlp | grep 33333
# 临时关闭防火墙测试(生产环境请按需配置白名单规则)
systemctl stop firewalld
ufw disable
  1. 修复hostname解析配置
    编辑/etc/hosts文件,删除127.0.1.1和本机hostname的绑定,追加本机hostname和192.168.29.57的绑定规则:
# 注释掉如下行
# 127.0.1.1 XXXXXX
# 追加如下行
192.168.29.57 XXXXXX

同时可以在Spark环境配置文件spark-env.sh中追加固定IP配置,避免Spark自动选网卡出错:

export SPARK_LOCAL_IP=192.168.29.57
  1. 可选优化(解决日志中的jar包上传告警)
    提前把Spark依赖包上传到HDFS,避免每次提交任务都重复上传本地jar包:
# 上传Spark jar包到HDFS
hdfs dfs -mkdir -p /spark-jars
hdfs dfs -put $SPARK_HOME/jars/* /spark-jars/

然后在spark-defaults.conf中追加配置:

spark.yarn.jars hdfs://localhost:9000/spark-jars/*

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:45:09