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

YARN环境下是否可强制ApplicationMaster固定运行在同一节点

Spark ApplicationMaster 固定运行在客户端问题解决方案

重要提示:client部署模式下Spark Driver默认运行在提交节点,不要将Driver进程误判为ApplicationMaster,请先通过YARN WebUI确认ApplicationMaster的实际运行节点,再进行排查

常见原因与排查方法

1. YARN节点标签配置限制

  • 若集群给客户端所在节点绑定了专属的AM调度标签,同时Spark提交时指定了spark.yarn.am.nodeLabelExpression参数匹配该标签,ResourceManager只会将AM调度到符合标签要求的客户端节点
  • 排查命令:执行yarn cluster --list-node-labels查看集群节点标签配置,同时检查提交脚本中是否包含上述标签参数

2. 非客户端节点不满足AM资源要求

  • 其余集群节点没有足够的资源启动AM:
    • 确认非客户端节点的NodeManager状态正常,执行yarn node -list -all检查节点是否处于RUNNING、健康状态
    • 核对NodeManager配置的yarn.nodemanager.resource.memory-mb、yarn.nodemanager.resource.cpu-vcores剩余资源,是否满足spark.yarn.am.memory、spark.yarn.am.cores指定的AM启动资源阈值

3. Spark提交配置错误

  • 若提交参数中指定了spark.yarn.am.host强制绑定AM运行地址为客户端IP,所有模式下都会将AM调度到对应机器
  • 确认提交命令的master参数为yarn而非local模式,示例正确提交命令:
spark-submit --master yarn --deploy-mode cluster <应用jar包路径> <应用参数>

4. YARN调度规则限制

  • 检查yarn.resourcemanager.placement-constraints等调度配置,是否配置了AM必须调度到特定节点/机架的规则
  • 确认YARN节点准入白名单没有限制AM调度到其余集群节点

快速验证方法

临时关闭客户端节点的NodeManager服务后重新提交应用:

  • 若应用正常运行且AM调度到其他节点,说明是调度规则/标签配置问题
  • 若应用提交失败报错无可用资源,说明其余节点不满足AM启动的资源要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:15:07