重新启动ResourceManger----官网谷歌翻译

重新启动ResourceManger

总览

ResourceManager是管理资源并计划在YARN之上运行的应用程序的中央机构。因此,它可能是Apache YARN群集中的单点故障。

本文档概述了ResourceManager重新启动,此功能可增强ResourceManager使其在重新启动后仍能正常运行,并且还使ResourceManager的停机时间对最终用户不可见。

ResourceManager重新启动功能分为两个阶段:

ResourceManager重新启动阶段1:增强RM,以将应用程序/尝试状态和其他凭据信息保留在可插拔状态存储中。RM将在重新启动后从状态存储中重新加载此信息,并重新启动以前运行的应用程序。不需要用户重新提交应用程序。

ResourceManager重新启动阶段2:通过重新启动时从NodeMangers读取容器状态和ApplicationMasters的容器请求,着重于重构ResourceManger的运行状态。与阶段1的主要区别在于,RM重新启动后,先前运行的应用程序将不会被杀死,因此应用程序不会因RM中断而失去工作。

从Hadoop 2.4.0版本开始,仅实现ResourceManager重新启动阶段1,如下所述。

特征

总体概念是,当客户端提交应用程序时,RM会将应用程序元数据(即ApplicationSubmissionContext)保留在可插拔状态存储中,并在完成时保存应用程序的最终状态(例如完成状态(失败,终止,完成)和诊断)。申请完成。此外,RM还保存凭据(如安全密钥,令牌)以在安全环境中工作。只要RM在状态存储中可用,只要RM关闭,只要状态存储中有所需的信息(即应用程序元数据和附带的凭据,如果在安全环境中运行,则附带凭据),RM重启后,便可以从状态存储中获取应用程序元数据并重新提交申请。如果RM在停机之前已经完成(即失败,中止,完成),则RM不会重新提交申请。

在RM停机期间,NodeMangers和客户端将继续轮询RM,直到RM出现为止。RM启用后,它将通过心跳向正在与之通信的所有NodeManger和ApplicationMaster发送重新同步命令。今天,NodeMangers和ApplicationMasters处理此命令的行为是:NM将杀死其所有托管容器并向RM重新注册。从RM的角度来看,这些重新注册的NodeManager与新加入的NM相似。今天的AM(例如MapReduce AM)有望在收到重新同步命令后关闭。RM重新启动并从状态存储加载所有应用程序元数据,凭据并将其填充到内存后,它将为每个尚未完成的应用程序创建新的尝试(即ApplicationMaster),并照常重新启动该应用程序。如前所述

构型

本节介绍了启用RM重新启动功能所涉及的配置。

  • 启用ResourceManager重新启动功能。

    要启用RM重新启动功能,请将conf / yarn-site.xml中的以下属性设置为true:

    属性
    yarn.resourcemanager.recovery.enabled真正
  • 配置用于保留RM状态的状态存储。
    属性描述
    yarn.resourcemanager.store.class用于保存应用程序/尝试状态和凭据的状态存储的类名称。可用的状态存储实现为org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore(基于ZooKeeper的状态存储实现)和org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore(Hadoop文件系统)基于状态存储的实现,例如HDFS。默认值设置为org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore。
    • 使用基于Hadoop FileSystem的状态存储实现时的配置。

      配置将RM状态保存在Hadoop FileSystem状态存储中的URI。

      属性描述
      yarn.resourcemanager.fs.state-store.uri指向将存储RM状态的FileSystem路径位置的URI(例如hdfs:// localhost:9000 / rmstore)。默认值为$ hadoop.tmp.dir / yarn / system / rmstore。如果未提供FileSystem名称,将使用在conf / core-site.xml中指定的fs.default.name。

      配置重试策略状态存储客户端用于连接Hadoop FileSystem的策略。

      属性描述
      yarn.resourcemanager.fs.state-store.retry-policy-specHadoop FileSystem客户端重试策略规范。始终启用Hadoop FileSystem客户端重试。以成对的睡眠时间和重试次数(即(t0,n0),(t1,n1),...)指定,前n0个重试平均睡眠t0毫秒,随后的n1个重试平均睡眠t1毫秒,等等。默认值为(2000,500)
    • 使用基于ZooKeeper的状态存储实现时的配置。

      配置ZooKeeper服务器地址和RM状态存储的根路径。

      属性描述
      yarn.resourcemanager.zk地址以逗号分隔的Host:Port对列表。每个都对应于RM将用于存储RM状态的ZooKeeper服务器(例如“ 127.0.0.1:3000,127.0.0.1:3001、127.0.0.1:3002”)。
      yarn.resourcemanager.zk-state-store.parent-path将存储RM状态的根znode的完整路径。默认值为/ rmstore。

      配置状态存储客户端用于连接ZooKeeper服务器的重试策略。

      属性描述
      yarn.resourcemanager.zk-num-retries如果连接丢失,RM尝试连接到ZooKeeper服务器的次数。默认值为500。
      yarn.resourcemanager.zk重试间隔毫秒连接到ZooKeeper服务器时,两次重试之间的间隔(以毫秒为单位)。默认值为2秒。
      yarn.resourcemanager.zk-timeout-msZooKeeper会话超时(以毫秒为单位)。ZooKeeper服务器使用此配置来确定会话何时过期。当服务器在此配置指定的会话超时时间内未收到客户端的消息(即无心跳)时,就会发生会话到期。默认值为10秒

      配置用于在ZooKeeper znode上设置权限的ACL。

      属性描述
      yarn.resourcemanager.zk-acl用于在ZooKeeper znode上设置权限的ACL。默认值为world:anyone:rwcda
  • 配置应用程序重试的最大次数。
    属性描述
    yarn.resourcemanager.am.max尝试应用程序尝试的最大次数。这是所有应用程序主机的全局设置。每个应用程序主机可以通过API指定其最大的应用程序尝试次数,但是该次数不能超过全局上限。如果是的话,RM将覆盖它。默认数字设置为2,以允许至少一次重试AM。

    该配置的影响实际上超出了RM重新启动范围。它控制应用程序可以尝试的最大次数。在RM重新启动阶段1中,此配置是必需的,因为如前所述,每次RM重新启动时,它将终止先前运行的尝试(即ApplicationMaster)并创建新的尝试。因此,每次RM重新启动都会使尝试计数增加1。在RM重新启动阶段2中,不需要此配置,因为先前运行的ApplicationMaster不会被杀死,并且RM重新启动后AM只会与RM重新同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值