Spark提交YARN cluster模式应用出现sparkDriver服务BindException错误
Spark 3节点集群cluster模式提交应用绑定异常修复方案
报错信息:
java.net.BindException: Cannot assign requested address: bind: Service 'sparkDriver' failed
根因说明
Spark cluster部署模式下,Driver进程会被YARN/Standalone集群调度到任意Slave节点运行,而非固定在提交任务的节点执行。任务本地运行或client模式提交正常,说明提交节点本身的配置没有问题,错误由Driver被调度到的Slave节点的网络配置异常导致。
可执行修复步骤
- 检查是否硬编码了Driver绑定IP:确认spark-defaults.conf配置文件,或者提交任务的命令中,是否指定了
spark.driver.host为提交节点的固定IP。如果有该配置,直接删除即可,让Spark自动获取Driver运行节点的可用网卡IP;如果必须指定绑定地址,可改为--conf spark.driver.host=0.0.0.0允许Driver绑定到运行节点的所有网卡。 - 检查报错Slave节点的hosts解析:登录报错的Slave节点执行
hostname -i,验证返回的IP是否为集群内可互通的内网IP。如果返回127.0.0.1或者其他不可达IP,修改/etc/hosts文件,将本机hostname映射到实际的内网IP。 - 检查Driver端口是否冲突:如果配置了固定的
spark.driver.port参数,会导致多个Driver调度到同一Slave节点时出现端口占用。建议删除固定端口配置,让Spark自动分配随机可用端口;如果需要固定端口范围,可配置spark.driver.port=10000-10050并提前在所有Slave节点预留该范围端口。
内容的提问来源于stack exchange,提问作者Patrick Schulz
相关产品推荐
相关产品推荐

