You need to enable JavaScript to run this app. 如何在AWS EMR中为任务节点添加自定义节点标签并关联自动扩容节点
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS EMR中为任务节点添加自定义节点标签并关联自动扩容节点

AWS EMR 配置YARN节点标签实现Spark Executor仅运行在Spot任务节点方案

通过YARN节点标签隔离Spot任务节点与其他类型节点,Spark提交时指定对应标签即可强制Executor调度到Spot实例,可有效降低集群运行成本,具体配置步骤如下:

目标1:集群启动时添加自定义YARN标签

  • 第一步:在EMR集群启动的软件配置模块,新增YARN配置项,配置JSON如下:
[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.node-labels.enabled": "true",
      "yarn.node-labels.manager-class": "org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager",
      "yarn.node-labels.fs-store.root-dir": "/yarn/node-labels",
      "yarn.resourcemanager.node-labels.provider": "org.apache.hadoop.yarn.nodelabels.ConfiguredNodeLabelsProvider"
    }
  }
]
  • 第二步:新增自定义引导操作,为所有任务节点绑定预设标签(示例标签名为spot_executor),引导脚本内容如下:
#!/bin/bash
# 提前在引导脚本中安装jq,用于解析实例元数据
sudo yum install -y jq
# 仅任务节点(TASK类型)绑定标签
if [ "$(cat /mnt/var/lib/info/instance.json | jq -r '.instanceGroupType')" = "TASK" ]; then
  echo "<property><name>yarn.node-labels</name><value>spot_executor</value></property>" >> /etc/hadoop/conf/yarn-site.xml
  sudo systemctl restart hadoop-yarn-nodemanager
fi
  • 第三步:集群启动完成后,登录资源管理器主节点执行命令初始化集群标签:
    yarn rmadmin -addToClusterNodeLabels "spot_executor(exclusive=false)"
    其中exclusive参数设为false表示标签节点空闲时允许其他无标签任务调度,设为true则完全独占,仅允许指定标签的任务运行。

目标2:自动扩容节点自动关联YARN标签

EMR的托管扩容、自定义自动扩容策略触发新增的任务节点,会自动执行上述配置的引导操作脚本,脚本会自动识别实例组类型为TASK后自动绑定标签、重启NodeManager服务,无需额外配置。
如果使用实例舰队模式部署任务组,仅需在任务舰队的配置中关联上述引导操作即可,所有扩容生成的Spot实例都会自动绑定spot_executor标签。

Spark作业调度配置

完成上述配置后,在spark-submit阶段添加如下参数,即可强制所有Spark Executor调度到Spot任务节点:

spark-submit \
  --master yarn \
  --deploy-mode cluster \
  --conf spark.yarn.am.nodeLabelExpression= \
  --conf spark.yarn.executor.nodeLabelExpression=spot_executor \
  你的作业Jar包及业务参数

这里spark.yarn.am.nodeLabelExpression留空表示Application Master可调度到核心节点,避免Spot实例回收导致作业整体失败。

配置验证

可通过YARN ResourceManager UI查看所有节点的标签分配情况,提交测试作业后,确认Executor运行的节点均属于TASK实例组的Spot实例即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 05:54:04