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

Spark on Yarn集群Application Master最大限制25.0如何修改?

解决Yarn容量调度器Application Master数量限制(25.0)的问题

你的集群配置是4个Worker节点(16GB内存/4核CPU),当前遇到Yarn调度器UI显示Configured Max Application Master Limit: 25.0,提交应用时提示Queue's AM resource limit exceeded,且之前尝试的参数未生效,问题出在你调整的参数不对,没有命中控制队列AM数量的关键配置。

关键配置说明

Configured Max Application Master Limit对应的是队列级别的AM数量上限,你需要调整以下两个核心参数:

  1. yarn.scheduler.capacity.root.<队列名>.max-am-percent
    这个参数直接控制队列中同时运行的AM数量占队列总应用数的比例,默认值是0.5(50%)。如果你的应用都提交到默认的root队列,就设置yarn.scheduler.capacity.root.max-am-percent;若提交到子队列(比如root.default)则替换为对应队列路径。

  2. yarn.scheduler.capacity.root.<队列名>.maximum-applications
    这个参数设置队列允许的最大应用总数,你的集群显示25.0,大概率是该参数被限制后,结合max-am-percent的默认50%计算得出的结果(比如队列最大应用数设为50,50*0.5=25)。

具体修改步骤

方式1:修改Yarn配置文件(capacity-scheduler.xml)

找到Yarn的capacity-scheduler.xml配置文件,添加或修改以下参数(以root队列为例):

<property>
    <name>yarn.scheduler.capacity.root.maximum-applications</name>
    <value>100</value> <!-- 根据实际需求调整,比如设为50 -->
</property>
<property>
    <name>yarn.scheduler.capacity.root.max-am-percent</name>
    <value>1.0</value> <!-- 允许队列中所有运行的应用都是AM,只要资源足够 -->
</property>

修改后重启Yarn ResourceManager服务,配置才会生效。

方式2:通过集群创建命令修改(如果用脚本/云平台创建集群)

在你现有的集群创建参数中添加以下两行:

--properties yarn:yarn.scheduler.capacity.root.maximum-applications=100 \
--properties yarn:yarn.scheduler.capacity.root.max-am-percent=1.0

重新创建集群后配置会自动生效。

额外注意事项

  • 若使用子队列(比如root.default),需要把参数中的root替换为完整队列路径,例如yarn.scheduler.capacity.root.default.max-am-percent。
  • 实际可运行的AM数量受限于集群资源:你的集群总CPU是44=16核,每个Spark AM(Driver)占用1核,因此最多同时运行16个AM;内存总可用为413544=54176MB,每个AM用1024MB,内存能支持约53个AM,最终受限于CPU资源,最多16个并行AM。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:35:00