文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Yarn/ Yarn企业级能力增强/ 配置Yarn实例重启后自动加载Container信息
更新时间:2025-07-14 GMT+08:00

配置Yarn实例重启后自动加载Container信息

操作场景

YARN Restart特性包含两部分内容:ResourceManager Restart和NodeManager Restart。

  • 当启用ResourceManager Restart时,备ResourceManager升主后,ResourceManager就可以通过加载之前的主ResourceManager的状态信息,并通过接收所有NodeManager上Container的状态信息,重构运行状态继续执行。这样应用程序通过定期执行检查点操作保存当前状态信息,避免工作内容的丢失。
  • 当启用NodeManager Restart时,NodeManager在本地保存当前节点上运行的Container信息,重启NodeManager服务后通过恢复此前保存的状态信息,会避免丢失在此节点上运行的Container进度。

配置ResourceManager Restart特性

  1. 登录FusionInsight Manager。

    登录集群Manager具体操作,请参考访问MRS集群Manager

  2. 选择“集群 > 服务 > Yarn > 配置 > 全部配置”。
  3. 搜索并根据实际需要修改相关参数。

    表1 ResourceManager Restart参数配置

    参数

    描述

    默认值

    yarn.resourcemanager.recovery.enabled

    是否开启ResourceManager在启动后恢复状态。

    • true:开启。ResourceManager会启用恢复机制,能够在发生故障后恢复其状态。开启后需要设置“yarn.resourcemanager.store.class”参数。
    • false:关闭。ResourceManager不会自动保存其状态,故障后需要重新初始化。

    true

    yarn.resourcemanager.store.class

    指定用于保存应用程序和任务状态以及证书内容的state-store类。

    取值范围:

    • org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore:基于ZooKeeper的state-store实现。
    • org.apache.hadoop.yarn.server.resourcemanager.recovery.AsyncZKRMStateStore:基于ZooKeeper的异步启动应用程序的state-store实现。
    • org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSysteMapReduceMStateStore:类似HDFS的基于Hadoop文件系统的state-store实现。选择该参数后,则必须设置“yarn.resourcemanager.store.class”参数。

    org.apache.hadoop.yarn.server.resourcemanager.recovery.AsyncZKRMStateStore

    yarn.resourcemanager.zk-state-store.parent-path

    存储ResourceManager状态的ZooKeeper znode全路径。

    如果“yarn.resourcemanager.store.class”设置为“org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSysteMapReduceMStateStore”,则必须设置当前参数。

    /rmstore

    yarn.resourcemanager.work-preserving-recovery.enabled

    是否启用ResourceManager任务保持恢复功能。该配置仅用于Yarn特性验证。

    • true:开启。ResourceManager在发生故障后能够保留之前的工作状态。
    • false:关闭。ResourceManager不会启用任务保持恢复机制,故障恢复时需要重新初始化资源和任务。

    true

    yarn.resourcemanager.state-store.async.load

    对已完成的application是否启用ResourceManager异步恢复方式。

    • true:开启。ResourceManager在启动时会以异步的方式从状态存储中加载之前保存的状态信息。
    • false:关闭。ResourceManager在启动时会以同步的方式加载状态信息,可能会增加启动时间。

    true

    yarn.resourcemanager.zk-state-store.num-fetch-threads

    在开启异步模式加载任务后,加载任务线程的数量。

    启用异步恢复功能,增加工作线程的数量可以加快恢复ZooKeeper中保存的任务信息的速度。取值范围大于0。

    20

  4. 保存修改的配置。保存完成后请重新启动配置过期的实例以使配置生效。

配置NodeManager Restart特性

  1. 登录FusionInsight Manager。

    登录集群Manager具体操作,请参考访问MRS集群Manager

  2. 选择“集群 > 服务 > Yarn > 配置 > 全部配置”。
  3. 搜索并根据实际需要修改相关参数。

    表2 NodeManager Restart参数配置

    参数

    描述

    默认值

    yarn.nodemanager.recovery.enabled

    当NodeManager重启时是否启用日志失败收集功能,是否恢复未完成的Application。

    • true:开启。NodeManager会在节点故障后恢复之前运行的任务或容器。
    • false:关闭。NodeManager不会自动保存其状态,故障后需要重新初始化。

    true

    yarn.nodemanager.recovery.dir

    NodeManager用于保存Container状态的本地目录。

    • 当NodeManager启用恢复功能时,会将任务的状态信息保存到该目录中,以便在节点故障后能够恢复任务。
    • 该参数在“yarn.nodemanager.recovery.enabled”配置为“true”时有效。
    注意:

    请谨慎修改该项。如果配置不当,将造成服务不可用。当角色级别的该配置项修改后,所有实例级别的该配置项都将被修改。如果实例级别的配置项修改后,其他实例的该配置项的值保持不变。

    ${SRV_HOME}/tmp/yarn-nm-recovery

    yarn.nodemanager.recovery.supervised

    NodeManager是否在监督模式下运行。

    • true:开启。开启此特性后NodeManager在退出后不会清理Containers,NodeManager会尝试重启和恢复Containers。
    • false:关闭。NodeManager在退出后不会尝试重启和恢复Containers。

    true

  4. 保存修改的配置。保存完成后请重新启动配置过期的实例以使配置生效。