muri 发表于 2016-12-12 06:57:20

Hadoop Yarn NodeManager源码分析①

从NodeManager.java开始分析。
 
NodeManager类完成的工作就是启动一系列的服务(Service),Service是具有状态的类,状态有  
 NOTINITED,
    INITED,
    STARTED,
STOPPED;
 
Service有一系列改变这些状态的方法,并且可以注册监听器监听自身状态的变化。
 
NodeManager本身继承自Service,是一种CompositeService,也就是说NodeManager这个Service又由一些列的Service组成。同时NodeManager实现了监听器接口,可以监听自己的Service的状态变换情况。
 
组成NodeManager的Service有:
 
DeletionService 用于删除特定用户特定文件夹下的文件
 
NodeHealthCheckerService  可配置选项,作用由名字可知
 
NodeStatusUpdater  更新Node状态的服务,此服务的STOPPED状态会被NodeManager本身监听到并终止NodeManager服务。
 
NodeResourceMonitor 作用由名可知,监控资源状态的。
 
ContainerManagerImpl 不清楚,应该是根据资源状况为Application分配Container吧。依赖NodeRecourceMonitor提供资源信息,依赖于NMContext,NMContext包含了一个Node中的Application和Container信息。
 
AsyncDispatcher 事件消息分发模块,维护一个事件消息队列和一个事件与对应的handler的Map。
注册ContainerManagerEventType(应用终止和容器终止)事件到containerManager,由containerManager处理应用终止和容器终止消息,containerManager实现了EventHandler接口。
 
WebServer web服务器,应该是用来展示node的运行状态的。
页: [1]
查看完整版本: Hadoop Yarn NodeManager源码分析①