文章目录
1. 什么是Yarn ?
Yarn -- 通用资源管理系统和调度平台
2. Yarn 特点
1、支持多计算框架
2、资源利用率高,运行成本低,数据共享。
Yarn资源管理只包括内存与CPU,Yarn回去汇总集群内所有节点上的CPU总和数,和内存总数量。ss(不包括磁盘和网络)
Yarn的意义:降低了企业硬件的成本(多个集群变成一个集群),减少了资源的了浪费,运营成本低。
3. Yarn基本组成
ResourceManager :一个集群资源调度的管理者
NodeManager :一个节点资源调度的管理者(集群各个节点资源的工作者)
ApplicationMaster : 一个计算任务的管理者
Container : 容器(cpu 和 内存)
4. Yarn提交任务的流程
1、client向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
2、ResourceManager启动一个container用于运行ApplicationMaster。
3、启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。
4、ApplicationMaster向ResourceManager发送请求,申请相应数目的container。
5、申请成功的container,由ApplicationMaster进行初始化。container的启动信息初始化后,AM与对应的NodeManager通信,要求NM启动container。
6、NM启动启动container。
7、container运行期间,ApplicationMaster对container进行监控。container通过RPC协议向对应的AM汇报自己的进度和状态等信息。
8、应用运行结束后,ApplicationMaster向ResourceManager注销自己,并允许属于它的container被收回。
提交任务的详细流程
5. Yarn的调度
1、先进先出(FIFO Scheduler):优先提交的,优先执行,后面提交的等待。(火车过隧道)。
2、容量调度(Capacity Scheduler):允许看创建多个任务对列,多个任务对列可以同时执行。但是一个队列内部还是先进先出。CDH默认的调度器。
3、公平调度(Fair Scheduler):第一个程序在启动时可以占用其他对列的资源(100%占用),当其他对列有任务提交时,占用资源的对列需要将资源还给该任务。还资源的时候,效率比较慢。