RM
- 启动时会通过向zk的/hadoop-ha目录写一个lock文件,写成功则为active,否则为standby。standby RM会一直监控lock文件是否存在,如果不存在就会尝试去创建,争取为active rm。
- 会接收客户端的任务请求,接收和监控nm的资源的汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。
NM
节点上的资源的管理,启动container容器运行task的计算,上报资源,将container情况汇报给rm,任务的处理情况汇报给ApplicationMaster(AM)。
ApplicationMaster(AM)
- 运行在nm机器上的container上
- 单个application(job)的task的管理和调度,并向rm进行资源的申请,向nm发出加载container指令,接收nm的task的处理状态信息。
RMstatestore
- RM的作业信息存储在ZK的/rmstore下,active RM向这个目录写app信息
- 当active rm挂了,另外一个standby rm 成功转换成active rm后,会从/rmstore目录读取相应的作业信息,重新构建作业的内存信息。然后启动内部服务,开始接收nm的心跳,构建集群资源的信息,并接收客户端的提交作业的请求等。
ZKFC
- 做自动故障转移
- 只作为RM进程的一个线程,而非独立的守护进程来启动