玩Hadoop的不知道YARN?这简直是天大的笑话!之前介绍Hadoop核心组件的时候(详见《Hadoop的“前世今生”》那篇博文)就曾提到过“YARN是实现了集群资源管理以及作业调度的框架”,那么本文就对YARN集群架构做进一步的介绍。
YARN集群总体上是经典的Master/Slave架构,主要由ResourceManager(Master)、NodeManager(Slave)、ApplicationMaster、Container等几个组件构成。下面对各个组件进行介绍:
1. ResourceManager
以后台进程的形式运行,负责对集群资源进行统一管理和任务调度。主要职责如下:
- 接收来自客户端的请求。
- 启动和管理各个应用程序的ApplicationMaster。
- 接收来自ApplicationMaster的资源申请,并为其分配Container。
- 管理NodeManager,并接收来自NodeManager的资源和节点健康情况的汇报。
2. NodeManager
集群中每个节点上的资源和任务管理器,以后台进程的形式运行。
3. Task
应用程序的具体执行任务。一个应用程序可能有多个任务,例如,一个MapReduce程序可以有多个Map任务和多个Reduce任务。
4. Container
封装了资源(CPU、内存等)。一个应用程序所需的Container分为两类:运行ApplicationMaster的Container和运行各类Task的Container。
5. ApplicationMaster
一个应用程序对应一个ApplicationMaster,在用户提交一个应用程序时,会启动一个ApplicationMaster实例,ApplicationMaster会启动所有需要的Task来完成它负责的应用程序,并且监视Task的运行状态和运行进度,重新启动失败的Task,等等。
总结:ResourceManager管理整个集群;NodeManager管理集群中单个节点;ApplicationMaster管理单个应用程序(集群中可能同时有多个应用程序在运行,每个应用程序都有各自的ApplicationMaster)。
标签:Task,Container,ApplicationMaster,应用程序,集群,YARN,架构 From: https://www.cnblogs.com/tianpan666/p/17920321.html