大数据_YARN的工作原理

目录

一、YARN产生的背景

二、YARN的设计思想

三、YARN的基本架构

四、YARN的工作流程


一、YARN产生的背景

YARN是从MRv1(hadoop1.0时代)进化到MRv2(hadoop2.0时代)过程中,解决了扩展性差、可靠性差以及资源利用率低等问题应运而生的。下面是MRv1和MRv2的介绍。

MRv1

1、编程模型:Map阶段和Reduce阶段

2、数据处理引擎:MapTaskReduceTask

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

     4mRv1的局限性:

•  扩展性差( JobTracker兼具资源管理及作业调度, 容易负载过大)

•  可靠性差( Master/Slave架构中, Master的单点故障)

•  资源利用率低( Slot资源分配模型)

•  无法支持多种计算平台  

MRv2

1、编程模型,数据、处理引擎,与MRv1是一样的

2、唯一不同的是运行时环境。MRv2是运行于YARN之上的MapReduce计算框架·

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

YARN

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

•  资源利用率高

•  运维成本低

•  数据共享  

大数据_YARN的工作原理_第1张图片

二、YARN的设计思想

MRv1MRv2的框架对比图

大数据_YARN的工作原理_第2张图片

大数据_YARN的工作原理_第3张图片

MRv1MRv2的编程模型对比

1、编程模型( MapReduce应用程序的两套编程接口: 新API(mapred) 和旧API(mapreduce))

2、向后兼容问题: 采用MRv1的旧API写的APP, 可以直接使用之前的 Jar包运行于MRv2上, 但采用MRv1; 但采用MRv1的新API写的APP, 不可以如此, 需要使用MRv2编程库重新编译并修改不兼容的参数和 返回值。  

MRv1MRv2的运行环境对比

•  JobTracker: 资源和任务的管理和调度

•  TaskTracker: 单个节点的资源管理和任务执行 

大数据_YARN的工作原理_第4张图片

•  YARN: 资源管理和调度

•  ApplicationMaster: 具体应用程序相关的任务切分、 任务调度和容错等。  

大数据_YARN的工作原理_第5张图片

三、YARN的基本架构

AYARN的基本组成结构

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

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

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

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

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

Container:资源分配单位(MRv1中slot),动态分配。

ApplicationMaster:每个APP都会包含一个AM,AM的功能包括:

1、向RM申请资源(用Container)

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

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

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

大数据_YARN的工作原理_第6张图片

BYARN的通信协议

1、Client与RM通信的协议,ApplicationClientProtocol,作业的提交,应用程序的状态等。

2、AM与RM通信协议,ApplicationMasterProtocol,向RM注册AM,申请资源。

3、AM与NM通信协议,ContainerManagementProtocol,启动/停止Container。

4、RM与NM通信协议,ResourceTracker,汇报slave节点的资源信息包括Container的状态(运行状况)

大数据_YARN的工作原理_第7张图片

四、YARN的工作流程

 下图的数字表示了YARN的从client提交任务,到申请资源,到创建task,以及task完成后返回结果RM的处理流程。

大数据_YARN的工作原理_第8张图片

你可能感兴趣的:(大数据,java,开发语言)