产品经理学大数据——大数据软件框架:Hadoop框架(3)之YARN(集群资源管理器)

  • YARN是什么?

从Hadoop 2 开始,MapReduce背一个改进的版本所替代,这个版本叫做MapReduce 2.0(MRv2)或YARN(Yet Another Resource Negotiator,另一种资源协调者)。

YARN是一种新的Hadoop资源管理器,也是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

  • MapReduce的问题

JobTracker是MapReduce的集中处理点,存在单点故障。

JobTracker承担了太多的任务,造成了过多的资源消耗,当job非常多的时候,会造成很大的内存开销,也增加了JobTacker崩溃的风险。业界的共识是老版本的MapReduce的上线只能支持4000个节点主机。

在TaskTracker端,只以map/reduce task的数目作为资源的表示过于简单,没有考虑到CPU和内存的占用情况,如果两个大内存小号的task被调度到了一块,很容易出现Java的OOM。

在TaskTracker端,把资源强制划分为map task slot和reduce task slot。当系统中只有map task或者只有reduce task的时候,这会造成资源的浪费,也就是前面提到的集群资源利用的问题。

YARN的原理

YARN最初是为了修复MapReduce实现里的明显不足,并对可伸缩性、可靠性和集群利用率进行了提升。YARN把JobTracker的两个主要功能(资源管理和作业调度/监控)分成了两个独立的服务程序——全局的资源管理(Resource Manager,简称为RM)和针对每个应用的App Master(AM)。RM和每一台机器的阶段管理服务器(Node Manager)能够管理用户在哪台机器上的进程,并能对计算进行组织。

RM支持分层级的应用队列,这些队列享有集群一定比例的资源。它是一个调度器,可以给予应用程度对资源的需求进行调度。每一个应用程序需要不同类型的资源,因此就需要不同的容器(container)。资源包括:内存、CPU、磁盘、网络等等。

NodeManager是每一台机器的代理,实质性应用程序的容器,它监控应用程序的资源使用情况并向资源管理器汇报。

  • YARN和MapReduce对比

客户端应用不变,其API大部分保持兼容,这也是为了对开发者透明化,使其不必对原有应用代码做大的修改,但是原框架中核心的JobTracker和TaskTracker不见了,取而代之的是RM、AM与NodeManager三个部分。

RM是一个中心的服务,它是调度和启动每一个Job所属的AM,另外监控AM的存在情况。在老版本的Job里面所在的task监控和重启在YARN中都不见了,这就是YARN中出现AM的原因。RM负责作业与资源的调度,接受JobSubmitter提交的作业,按照作业的上下文(Context)信息,以及从NodeManager收集来的状态信息,启动调度过程,分配一个Container。

NodeManager功能比较单一,就是负责Container状态的维护,并向RM保持心跳。

AM负责一个Job生命周期内的所有工作,类似老框架中的JobTracker。

  • YARN的优点

大大减少了JobTracker的资源消耗,并且让检测每一个Job子任务(tasks)状态的程序分布式了。对于资源的表示以内存为单位,比之前以剩余slot数目为单位更合理。监控Job下的tasks的运行状况,现在由AM完成,而RM中有一个模块叫做ApplicationsMasters,它用来监测AM的运行状况,如果出问题,会将其在其他机器上重启。Container是YARN为了将来做资源隔离而提出的一个框架。

总之,YARN从某种意义上来说,应该算是一个云操作系统,它负责集群的资源管理。在操作系统之上可以开发各类的应用程序。这些应用可以同时利用Hadoop集群的计算能力和丰富的数据存储模型,共享同一个Hadoop集群和驻留在集群上的数据。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值