Hadoop项目之——YARN深入学习
·
1.简介
YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

资源管理器:集群的硬件资源,和程序相关,比如内存,CPU等。
调度平台:多个程序同时申请 计算资源如何分配,调度的规则(算法)。
通用:不仅仅支持MapReduce程序,理论上支持各种计算程序(spark,Flink).YARN不管你干什么,只关心你要资源,在有的情况下给你,用完还我。
2.YARN三大组件


Container容器(资源的抽象)
- ResourceManager(RM): YARN集群中的主角色,决定系统中所有应用程序之间资源分配得最终权限,即最终仲裁者。接收用户得作业提交,并通过NM分配、管理各个机器上的计算资源。
- NodeManager(NM):YARN中的从角色,一台机器一个,负责管理本机器上的计算资源。根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM主角色汇报资源使用情况。
- ApplicationMaster(AM):用户提交的每个应用程序均包含一个AM。应用程序内的“老大”,负责程序内部个阶段的资源申请,监督程序的执行情况。
3.核心交互流程
- MR作业提交 Client——>RM
- 资源申请 MrApp Master——>RM
- MR作业状态汇报 Container( Map|Reduce Task)——>Container(Mr App Master)
- 节点的状态汇报 NM——>RM
4.YARN中的资源调度器——Scheduler
YARN可以被看作是分布式操作系统的“内核”,而资源调度器就是这个内核的核心部件,它负责将整个集群的资源(主要是CPU和内存)分配给各个应用程序(如MapReduce、Spark、Flink等)
- FIFO:单个队列,先进先出
- Capacity:容量调度,划分队列,队列内FIFO,队列间可以借用
- Fair:在队列之间和队列内部的应用程序之间都进行公平分享
更多推荐



所有评论(0)