YARN核心组件
- ResourceManager
- 整个集群只有一个Master
- 处理客户端请求
- 监控NodeManager
- 资源分配和调度
- 启动/监控ApplicationMaster
-
NodeManager
-
每个节点只有一个,集群会有多个,一般与DataNode一一对应,在相同的机器上部署
-
单个节点上的资源监控和管理
-
定时向ResourceManager汇报本机的资源使用情况
-
处理来自ResourceManager的请求,为作业的执行分配Container
-
处理来自ApplicationMaster的请求,启动和停止Container
-
ApplicationMaster
-
每个应用程序只有一个,负责应用程序的管理,资源申请和任务调度
-
与ResourceManager协商为应用程序申请资源
-
与NodeManager通信启动、停止任务
-
监控任务运行状态和失败处理
-
Coutainer
-
任务运行环境的抽象,只有在分配任务时才会抽象出一个Container。
-
ResourceMaster基于Zookeeper实现高可用
-
NodeManager故障将导致运行在该节点的任务失败,任务失败后,ResourceManager将失效任务通知对应的ApplicationMaster,再由ApplicationMaster决定如何处理失败的任务
-
ApplicationMaster失败后,由ResourceMaster负责重启,RMAppMaster会保存已经运行完成的Task,重启后无需重新运行