【Juicy-Bigdata】Hadoop之Yarn实战
【Juicy-Bigdata】Hadoop之Yarn实战
余生杂货铺Yarn集群的架构和工作原理
RM 和NM 的功能介绍
ResourceManager基本介绍
一、职能
- 与客户端交互,处理客户端的请求
- 启动和管理AM,并在它failed的时候restart
- 管理NN,接收来自NN的资源汇报情况,向NN下达管理指令
- 资源管理调度,接受来自AM的资源请求,分配资源
二、内部结构
- 用户交互模块
- clientRMService:处理提交应用程序,终止程序,获取程序状态请求
- adminService:管理员的通信信道
- webApp
- NM管理模块
- NMLivelinessMonitor:监控NM是否活着。、
- NodeListManager: 维护正常和异常的NM节点列表,默认情况下都为空
- ResourceTrackerService: 处理来自NN的请求,包括注册和心跳。
- AM管理模块
-
AMLivelinessMonitor:监控Am是否活着。
-
ApplicationMasterLauncher:要求某一个NM启动ApplicationMaster,处理创建和kill Am的请求
-
ApplicationMasterService: 处理来自Am的请求,注册、心跳、清理。
- Application管理模块
- ApplicationACLLsManager:管理应用程序的权限
- RMAPPManager:管理应用程序的启动和关闭
- ContainerAllocationExpirer
- 状态机管理模块:
-
RMApp : RMApp 维护一个应用程序的的整个运行周期,一个应用程序可能有多个实例,RMApp 维护的是所有实例的
-
RMAppAttempt : RMAppAttempt 维护一个应用程序实例的一次尝试的整个生命周期
-
RMContainer : RMContainer 维护一个Container 的整个运行周期(可能和任务的周期不一致)
-
RMNode : RMNode 维护一个NodeManager 的生命周期,包括启动到运行结束的整个过程。
- 安全模块:
- RM 自带了全面的权限管理机制。主要由ClientToAMSecretManager、
ContainerTokenSecretManager、ApplicationTokenSecretManager 等模块组成。
- 资源分配模块:
- ResourceScheduler:ResourceScheduler 是资源调度器,他按照一定的约束条件将资源分配给各个应用程序。RM 自带了一个批处理资源调度器(FIFO)和两个多用户调度器Fair Scheduler 和Capacity Scheduler