Hadoop新一代MapReduce框架Yarn,理解时需要注意的几点问题

这篇文章介绍了Yarn框架,我认为写的不错。但是对于初学者,我觉得应该特别注意以下几点,因为这些是容易混淆的问题。

1. YARN和MR2不是一回事。YARN只是一个资源管理的框架,并不是一个计算框架,MR2只是一个计算框架,并不是一个资源管理框架。计算框架可以运行在YARN上,即MR2可以运行在YARN上,但其他的计算框架(比如Spark)也可以运行在YARN上,只不过计算框架需要定义自己的ApplicationMaster(AM)而已。由于YARN是伴随着MRv2一起出现的,所以目前一些集成的平台(比如CDH)都在YARN里面已经集成了MR2,也就是说已经默认实现了MR2的AM。

2.YARN作为一个资源管理的框架,包括了两个主要角色:ResourceManger(RM)和NodeManager(NM),它们共同完成资源管理。RM负责资源的分配,NM则负责资源的供给和隔离。RM将某个NM上资源分配给任务(这就是所谓的“资源调度”)后,NM需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的“资源隔离”。

3.RM将内存、CPU、磁盘、网络等资源抽象后,形成了Container的概念,即每个Container就是一个NM节点上一定量的资源(目前只考虑到了内存和CPU)。所以我们可以简单的认为:资源分配就是分配Container。NM会通过心跳将自身的资源状态上报给RM。

4.RM包括两个主要模块:调度器和ApplicationsManager(ASM)。调度器负责Container分配,ASM负责AM的管理。

5. 每个计算程序称为一个Application。其提交时,客户端访问ASM,ASM向调度器申请得到一个Container,在其中启动一个AM进程,之后客户端就直接与AM联系了。

6.AM会为Application的子任务(例如:map和reduce),向调度器申请Container,也会请求NM启动Contianer。每个子任务都将运行在一个Container中,AM会监测这些任务的运行状况。

7.所有的Container都是由NM管理的,并且运行在NM节点上。如果AM监测到某个任务异常,将请求NM杀死该任务的Container。

8. 一个Application的所有子任务完成后,AM进程退出。如果该进程中途失败,ASM将重启它,这相当于变相的实现了AM高可用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值