YARN笔记

浏览: 3692

hadoop

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的基本组成结构

  • ResourceManager:全局的资源管理器,负责整个集群的资源管理、分配与调度。
  • Scheduler(调度器),纯调度器,默认下是Fair Scheduler
  • NodeManager:对每一个slave上的资源和任务做管理 
    • 1) 定时的向RM汇报HearBeat(资源的使用情况和Container的运行状态)
    • 2) 接受来自AM的启动/停止的请求
  • Container:资源分配单位(MRv1中Slot),动态分配。
  • ApplicationMaster:每个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通信协议,ContainerManagementProtoca,启动/停止Container。 
4)RM与NM通信协议,ResourceTracker,汇报slave节点的资源信息包括Container的状态(运行状况)

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

长作业、短作业

  • 短作业,作业运行几秒、几分、几小时或几天……会正常结束的作业;
  • 长作业,如无意外,永远不停止的作业(服务部署,如Spark中的Master和Worker)

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

Alt text 图片1.png
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注销并关闭自己。

推荐 14
本文由 MarsJ 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册