【深入浅出 Yarn 架构与实现】6-2 NodeManager 状态机管理

一、简介

NodeManager(NM)中的状态机分为三类:Application、Container 和 LocalizedResource,它们均直接或者间接参与维护一个应用程序的生命周期。

  • 当 NM 收到某个 Application 的第一个 container 启动命令时,它会创建一个「Application状态机」来跟踪该应用程序在该节点的状态;
  • 每个container都有一个独立的「container状态机」;
  • Application 运行所需资源(jar,文件等)的下载过程则由「LocalizedResource状态机」维护和跟踪。

二、三类状态机

一)Application 状态机

NM 上的 Application 维护的信息是 RM 端 Application 信息的一个子集,这有助于统一管理节点上同一个 Application 的所有 Container(例如记录每个 Application 在该节点上运行的 Container 列表,以及杀死一个 Application 的所有 Container 等)。
实现这一功能的类是 nodemanager/containermanager/application/ApplicationImpl,它维护了一个 Application 状态机。需要注意的是,NM 上 Application 的生命周期与 RM 上 Application 的生命周期是一致的。

// 截取 ApplicationImpl 中一部分状态机的代码
  private static StateMachineFactory<ApplicationImpl, ApplicationState,
          ApplicationEventType, ApplicationEvent> stateMachineFactory =
      new StateMachineFactory<ApplicationImpl, ApplicationState,
          ApplicationEventType, ApplicationEvent>(ApplicationState.NEW)

           // Transitions from NEW state
           .addTransition(ApplicationState.NEW, ApplicationState.INITING,
               ApplicationEventType
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值