YARN 笔记

来源:互联网 发布:投影仪网络连接很慢 编辑:程序博客网 时间:2024/06/18 05:57

YARN 笔记

1. YARN的产生背景

2. YARN的设计思想

3. YARN的基本架构

4. YARN的工作流程(小结)

课程地址:https://edu.hellobi.com/course/93/play/lesson/1471

1. YARN的产生背景

MRv1

· 编程模型:Map阶段和Reduce阶段

· 数据处理引擎:MapTask和ReduceTask

· 运行时环境:JobTracker(资源管理和作业控制)和TaskTracker(接受JT命令并具体执行)

MRv2

· 编程模型、数据处理引擎,与MRv1是一样的 
唯一不同的是运行时环境。

· MRv2是运行于YARN之上的MapReduce计算框架。

· YARN(资源管理与调度)和ApplicationMaster(作业控制)。

YARN 
支持多中计算框架的资源管理器。

MRv1局限性 
1、 可扩展性差,同时具备资源管理和作业控制两个功能,集群中的瓶颈。 
2、 可靠性差,主从架构(Master/Slave架构),其中的主节点存在单点故障,一旦主节点出现问题,将导致集群不可用。 
3、 资源利用率低,Slot资源分配模式,粗粒度的资源划分单位,通常任务不会用完一个槽的对应资源,且其他任务也无法使用这些空闲资源。 
4、 无法支持多种计算框架

YARN轻量级计算平台优点 
1、 资源利用率高 
2、 运维成为降低 
3、 数据共享

2. YARN的设计思想

MRv1和MRv2的框架对比 

 



MRv1和MRv2的编程模型对比 


MRv1和MRv2的运行时环境对比

 



 

 

3. YARN的基本架构

1、YARN的基本组成结构

 

· ResourceManagerRM全局的资源管理器,负责整个集群的资源管理、分配与调度。

Scheduler(调度器),纯调度器,默认下是Fair Scheduler

· NodeManagerNM:对每一个slave上的资源和任务做管理 

1) 定时的向RM汇报HearBeat(资源的使用情况和Container的运行状态)

2) 接受来自AM的启动/停止的请求

· Container:资源分配单位(MRv1中Slot),动态分配

· ApplicationMasterAM:每个APP都会包含一个AM,AM的功能包括任务管理器 

1) 向RM申请资源(用Container资源抽象)

2) 将任务做进一步的分配

3) 与NM通信启动/停止任务

4) 跟踪每一个Task的运行状态(包括Failed后的操作)

2、YARN的通信协议 
1)Client与RM通信的协议,ApplicationClientProtocol,作业的提交、应用程序的状态等。 
2)AM与RM通信协议,ApplicationMasterProtocol,向RM注册AM,申请资源。 
3)AM与NM通信协议,ContainerManagementProtocol,启动/停止Container。 
4)RM与NM通信协议,ResourceTracker,汇报slave节点的资源信息包括Container的状态(运行状况)

 

4. YARN的工作流程(小结)

长作业、短作业

· 短作业,作业运行几秒、几分、几小时或几天……会正常结束的作业;

· 长作业,如无意外,永远不停止的作业(服务部署,如Spark中的Master和Worker)

 

YARN提交一个作业(或应用程序):YARN的运行过程: 
1、启动ApplicationMaster 
2、由ApplicationMaster在集群中创建应用程序,为其申请资源,监控资源使用过程

自己概括:::::

客户向集群提交应用程序到RM1

RM为其分配一个container,与container所在的NM保持通信,并启动AM(2)

AM向RM注册(3),client可以通过RM查看运行状态

AM为其申请资源4RM里的Scheduler

AM和NM通信(5),要求NM启动对应的任务

NM设置任务运行环境(6),包括Map Task和Reduce Task

各个任务向AM汇报状态和进度(7),当反馈失败时,AM可以重启任务     

执行完成后注销8

 

 

资源管理系统--资源抽象(Container

统一的资源管理和调度

 

 

 

 

 

 

 

 

Mars老师笔记:

1,客户向YARN提交Application 
2,RM为这个应用程序分配一个Container(某个NM上),RM要求该NM在分配的Container上启动应用程序的ApplicationMaster(AM) 
3,AM向RM注册自己 
4,AM向RM申请资源 
5,与RM分配资源的NM通信,要求其启动Task 
6,NM设置好运行环境之后启动任务 
7,各Task向AM汇报进度和状态 
8,程序运行完毕,AM向RM注销并关闭自己。

 

0 0