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

Yarn集群Spark固定资源分配配置求助:单任务占20%集群资源

Spark on Yarn 固定资源分配解决方案

针对你的集群配置(45个工作节点,总360核/1080G内存),要实现5个任务同时运行且每个固定占用20%集群资源,按以下步骤配置:

1. 资源分配基准计算

每个任务需占用的20%集群资源:

  • CPU核:360 * 20% = 72核
  • 内存:1080 * 20% = 216G

结合单工作节点8核/24G的配置,每个任务分配9个executor(每个executor占满1个节点的资源),刚好匹配72核/216G的总配额。

2. 关闭Spark动态分配

禁用动态分配避免资源抢占,提交任务时添加以下参数:

--conf spark.dynamicAllocation.enabled=false
--conf spark.shuffle.service.enabled=false

3. Spark任务固定资源提交参数

每个任务提交时必须指定以下核心参数,确保资源固定:

spark-submit \
  --num-executors 9 \
  --executor-cores 8 \
  --executor-memory 22G \
  --driver-memory 16G \
  --conf spark.executor.memoryOverhead=2G \
  --conf spark.yarn.am.memory=4G \
  --conf spark.yarn.maxAppAttempts=1 \
  # 你的应用jar和其他业务参数
  • executor-memory=22G:预留2G给Yarn NodeManager及系统进程,避免内存超配被Yarn kill
  • memoryOverhead=2G:对应预留的系统内存,确保Yarn资源计算准确
  • driver-memory=16G:主节点125G内存足够支撑,避免driver OOM

4. Yarn集群配置调整

修改Yarn核心配置文件,确保资源分配规则匹配:

yarn-site.xml

<property>
  <name>yarn.nodemanager.resource.cpu-vcores</name>
  <value>8</value>
</property>
<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>24576</value> <!-- 24G -->
</property>
<property>
  <name>yarn.scheduler.maximum-allocation-vcores</name>
  <value>8</value>
</property>
<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>24576</value>
</property>

CapacityScheduler配置(capacity-scheduler.xml)

若使用容量调度器,限制队列同时运行的任务数:

<property>
  <name>yarn.scheduler.capacity.root.spark.capacity</name>
  <value>100</value>
</property>
<property>
  <name>yarn.scheduler.capacity.root.spark.maximum-applications</name>
  <value>5</value>
</property>
<property>
  <name>yarn.scheduler.capacity.root.spark.user-limit-factor</name>
  <value>1</value>
</property>

5. 异常排查要点

  • 用yarn application -list查看任务资源占用,确认每个任务的executor数量/核数符合预期
  • 检查Yarn节点状态:yarn node -list -all,确保无节点资源被占用或离线
  • 查看Spark任务日志,若出现Container killed by YARN,调整executor-memory和memoryOverhead的比例,确保总内存不超过单节点24G
  • 清理残留的Spark应用:yarn application -kill <app-id>,避免旧任务占用资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:52:42