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

如何在启用NodeManager重启恢复的YARN集群中正确移除NodeManager?

正确的YARN NodeManager节点退役方法

你遇到的问题是因为启用NodeManager恢复后,直接把节点加入黑名单的操作不会触发容器的优雅迁移流程,导致容器无法被重新调度,最终超时失败。以下是适配NM恢复功能的正确退役步骤:

  • 第一步:配置优雅退役相关参数
    先确认yarn-site.xml中已配置以下参数(如果没有就添加):

    <property>
        <name>yarn.resourcemanager.nodes.exclude-path</name>
        <value>/path/to/yarn_exclude_hosts</value> <!-- 替换成你的exclude文件实际路径 -->
    </property>
    <property>
        <name>yarn.nodemanager.graceful-decommission.timeout-ms</name>
        <value>3600000</value> <!-- 优雅退役超时时间,建议设为1小时左右,可根据业务调整 -->
    </property>
    <property>
        <name>yarn.resourcemanager.decommissioning.monitor.interval-ms</name>
        <value>10000</value> <!-- ResourceManager检查退役状态的间隔,默认10秒即可 -->
    </property>
    

    首次配置这些参数的话,需要重启ResourceManager使其生效。

  • 第二步:触发优雅退役流程

    1. 把要退役的NodeManager主机名写入yarn_exclude_hosts文件
    2. 在ResourceManager节点执行刷新命令:
      yarn rmadmin -refreshNodes
      
      此时ResourceManager会把该节点标记为DECOMMISSIONING状态,不会再给它分配新容器,同时会尝试把节点上正在运行的容器迁移到其他可用节点。
  • 第三步:确认退役完成
    用以下命令查看节点状态:

    yarn node -list -all
    

    当节点状态变成DECOMMISSIONED后,就可以安全停止这个NodeManager进程,进行后续维护了。

  • 额外提醒

    • 要确保集群有足够的空闲资源来接收迁移的容器,不然部分容器可能还是会超时失败
    • 如果是短作业或者依赖本地资源无法迁移的作业,最好等作业跑完再退役节点
    • 维护完成后,把节点从exclude文件里删掉,再执行一次yarn rmadmin -refreshNodes,节点就能重新加入集群了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:37:42