Yarn中的几种状态机

本文详细介绍了Yarn中的四种关键状态机:RMApp、RMAppAttempt、RMContainer和RMNode的状态转换及其在资源管理中的作用。通过事件驱动模型,Yarn管理Application的生命周期,包括Application Attempt和Container的分配、启动、运行与结束。状态机在故障恢复、资源调度和应用失败处理中起到关键作用。
摘要由CSDN通过智能技术生成

1 概述

    为了增大并发性,Yarn采用事件驱动的并发模型,将各种处理逻辑抽象成事件和调度器,将事件的处理过程用状态机表示。什么是状态机?

    如果一个对象,其构成为若干个状态,以及触发这些状态发生相互转移的事件,那么此对象称之为状态机。

    处理请求作为某种事件发送到系统中,由一个中央调度器传递给对应的事件调度器,进而对事件进行处理,处理完成之后再次发送给中央调度器,再进行处理,直至处理完成。

    Yarn的资源管理模块ResourceManager,其核心构成就是四类这样的状态机(基于2.4版本),分别是:

(1)RMApp:用于维护一个Application的生命周期;

(2)RMAppAttempt:用于维护一次试探运行的生命周期;

(3)RMContainer:用于维护一个已分配的资源最小单位Container的生命周期;

(4)RMNode:用于维护一个NodeManager的生命周期;

    以上四个状态机,以继承了EventHandler 的Interface的形式存在于Yarn源码的org.apache.hadoop.yarn.server.resourcemanager中。其具体实现类,则是对应的xxxImpl类。

    提交到Yarn中的应用程序被称为Application,它可能会尝试运行多次,每次的尝试运行称为“Application Attempt”,如果一次尝试运行失败,则由RMApp创建另一个继续运行,直至达到失败次数的上限。Container是运行环境的抽象概念,无论是ApplicationMaster还是具体的每个Task都得运行在Container中。

2 RMApp状态机

    此状态机的具体实现类为org.apache.hadoop.yarn.server.resourcemanager.rmapp. RMAppImpl。其内部记录了一个Application的所有状态RMAppState(共11种)、触发状态间转换的事件RMAppEvent(共14种)、Application的其他基本信息等。其功能就是接收其他对象发出的RMAppEv

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值