YARN——Hadoop的资源管理系统

一、YARN是如何产生的

1.在Hadoop1.x中,mapreduce在集群中的架构是:1个Job Tracker(负责资源管理和作业调度)带多个Task Tracker(定期向Job Tracker汇报本节点的健康状况、资源使用情况、任务执行情况以及接收来自Job Tracker的命令并执行)。

Hadoop1.x存在的问题:

  • 单点故障:由于Job Tracker只有一个,如果它挂了,集群就没法使用了。
  • Job Tracker会接收来自各个Task Tracker节点的RPC请求,随着节点规模增大,Job Tracker压力会很大。
  • 而这系列版本的Hadoop仅支持mapreduce计算框架,不支持其他类型的计算框架。

2.从资源利用率的角度来看,在没有yarn之前,集群之间是独立的,例如Hadoop是一个集群,spark(计算框架)是一个集群,而Hbase又是一个集群,这样的情况就造成集群管理起来很复杂,而各个集群独立使得资源不能共享导致集群间资源浪费

解决的思路:将所有的计算框架运行在一个集群中,共享一个集群的资源,按需分配。哪个集群需要资源就将资源分配给哪个集群,这样的集群资源利用率就高于多个独立集群的资源利用率。

3.从数据共享角度来看,海量数据在集群间移动不但耗时,硬件成本也会增加。共享集群模式可以让多种框架共享数据(HDFS上的数据)、共享硬件资源,大大减少了移动数据带来的成本(即移动计算要比移动数据好,将作业任务分配到数据所在节点上去运行,减少数据网络传输的开销)。

二、YARN(Yet Another Reource Negotiator,另一资源协调者)

一个通用的资源管理系统,为上层应用提供统一的资源管理和调度。解决了集群资源利用率、数据共享、资源统一管理等方面的问题,yarn取代了Job Tracker的角色。

YARN架构(采用Master/Slave结构——主从设备模式)

组成:

  • Client:向Resource Manager提交任务、终止任务
  • Resource Manager(RM)
  1. 集群只有一个RM,一个RM对应多个NM;

  2. 处理客户端的请求(启动/终止应用程序);

  3. 启动/监控AM,若AM挂掉,RM会在另一NM节点上启动AM

  4. 监控NM,接收NM汇报的心跳信息并分配任务给NM执行;一旦某个NM故障,标记下该NM上的任务,告诉对应的AM如何处理

  • Node Manager(NM)
  1. 集群中有多个NM,负责单个节点资源管理和使用;

  2. 周期性地通过心跳信息向RM汇报本节点上资源使用情况和各个Container的运行状态;

  3. 接收并处理来自RM的Container启动/停止的各种命令 。

  • Application Master(AM)
  1. 对应每一个应用程序,负责应用程序的管理;

  2. AM向RM申请资源用在NM上启动相应的任务;

  3. 为应用程序/作业向RM申请资源(Container),并分配给内部任务;

  4. 与NM通信,以启动/停止任务;

  5. 任务监控和容错,在任务执行失败时重新为该任务申请资源以重启任务;

  6. 处理RM 发过来的命令(终止Container、让NM重启)。

  • Container(任务运行环境的抽象)任务是在Container中运行的,一个Container既可以运行AM,也可以运行具体的Map、Reduce、MPI、SparkTask。

Mapreduce作业启动时产生Map任务——Map Task

MPI框架对应的执行任务——MPI Task

三、YARN的架构设计

yarn的工作原理

  1. 用户向yarn提交应用程序/作业,包括AM程序,及启动AM程序的命令和用户程序;

  2. RM为作业分配第一个Container,并与对应的NM通信,要求它在这个Container中启动该作业的AM;

  3. AM首先向RM注册,这样用户就可以直接通过RM查询作业的运行状态;然后再为各个任务申请资源并监控任务的运行状态,直到运行结束(AM采用轮询的方式通过RPC请求向RM申请资源);

  4. AM一旦申请到资源,便与对应的NM通信,要求它启动任务;

  5. NM启动任务;

  6. 各个任务通过RPC协议向AM汇报自己的状态和进度,以便AM随时掌握各个任务的运行状态,从而在任务失败时重新启动任务;

  7. 作业在运行过程中,用户可随时通过RPC向AM查询作业当前的运行状态;

  8. 作业完成后,AM向RM注销并关闭自己。

yarn的容错性

  1. RM可基于Zookeeper实现HA(高可用),避免单点故障;
  2. NM执行失败后,RM将失败任务告诉对应的AM,由AM决定如何处理失败任务;
  3. AM执行失败后,由RM负责重启(AM需处理内部任务的容错问题,保存已经运行完成的Task,重启后不用再运行).
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醪糟小丸子

小小帮助,不足挂齿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值