YARN的服务库和事件库

一 服务库

对于生命周期较长的对象,YARN采用基于服务的对象管理模型对其管理,特点如下:

>每一个被服务化的对象分为四个状态:NOTINITED(被创建,还未初始化),INITED(已初始化),SATRTED(已启动),STOPPED(已停止)

>任何服务状态的变化,都可以触发一些动作

>可通过组合方式对任意服务进行组合

 

总接口:Service

抽象服务类:AbstractService实现了部分Service接口的方法

组合服务类:CompositeService,如果是组合服务,需要继承CompositeService,比如ResourceManager是一个组合服务,他组合了各种服务对象,比如ClientRMService,ApplicationMasterLauncher,

ApplicationMasterService等

YARN的服务库和事件库_第1张图片

二 事件库

YARN采用了基于事件的并发模型,该模型能够大大增强并发性,从而提高系统的整体性能。

YARN将各种处理逻辑抽象成事件和对应事件调度器,并将每类事件处理过程分割成多个步骤,用有限状态机表示

YARN的服务库和事件库_第2张图片

处理请求作为事件进入系统

中央异步调度器AsyncDipatcher负责传递给相应的事件调度器Event

Handler,这个事件调度器可能将该事件转发给另外一个事件调度器,也可能交给一个带有有限状态机的事件处理器

YANR中,所有核心服务实际上都是由一个中央异步调度器。包括

ResourceManager, Node Manager, MR Application Master等,他们维护了事先注册的事件和事件处理器,并根据接收的事件类型驱动服务的运行

 

当使用YARN事件库的时候步骤

1、定义一个中央异步调度器AsyncDispatcher,负责事件的处理和转发

2、根据实际业务需求定义一系列的事件Event与事件处理器EventHandler,并注册到中央异步调度器AsyncDispatcher,以实现事件统一管理和调度

 

举个例子:MRAppMaster

内部包含一个中央异步调度器ASyncDispatcher,并注册TaskAttemptEvent/TaskAttemptImpl、TaskEvent/TaskImpl、JobEvent/

JobImpl等一系列事件、事件处理器

 

 

三 状态机库

状态机由一组状态组成,这些状态分为三类:初始状态、中间状态、和最终状态。

从初始状态开始运行,经过一系列中间状态,达到最终状态并退出。

在一个状态机中,每一个状态都可以接受一组特定的事件,并根据具体的事件类型转换到另一个状态。

 

YARN中,每一种状态由四个元素组成:

转换前状态preState:

转换后状态:postState

事件:event

回调函数:hook

三种状态转换方式:

YARN的服务库和事件库_第3张图片

表示:状态机在preState状态下,接受到Event事件后,执行函数状态转移函数hook,执行完后,将当前的状态转换为postState

 

2、一个初始状态,一个事件,然后多种状态

YARN的服务库和事件库_第4张图片

表示状态在preState状态下,接受到Event事件后,执行函数hook

返回多种状态

3、一个初始状态,多个事件,一个最终状态

YARN的服务库和事件库_第5张图片

表示:在preState状态下,接收到多个事件后,执行状态转移函数hook,返回一个最终状态


你可能感兴趣的:(大数据/Hadoop,hadoop2.x,yarn,服务库,事件库)