Yarn---统一资源管理系统

原创 2016年08月29日 16:47:43

         YARN (Yet Another Resource Negotiator另一种资源协调者)Apache Hadoop Yarn是 Hadoop MRv2计算机框架中构建的一个独立的、通用的资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率资源统一管理数据共享等方面带来了巨大好处。

一、Yarn的出现背景

        由于MRv1在扩展性、可靠性、资源利用率和多框架等方面存在明显的不足,概括为以下几个方面:

        (1)扩展性差。在MRv1中,JobTracker同时兼备了资源管理和作业控制两个功能,这成为系统的最大瓶颈,严重制约了Hadoop集群的扩展性;

        (2)可靠性差。MRv1采用了Master/Slave结构,其中Master存在单点故障问题,一旦它出现故障将导致整个系统不可用;

        (3)资源利用率低。MRv1采用了基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位,通常一个任务不会用完槽位对应的资源,且其他任务也无法使用这些空闲资源。此外,Hadoop将槽位分为Map Slot和Reduce Slot两种,且不允许它们之间共享,常常导致一种槽位资源紧张而另一种槽位处于空间状态(如作业刚刚提交时,只会运行Map Task,Reduce Task就处于闲置状态);

        (4)无法支持多种计算框架。MapReduce基于磁盘的离线计算框架已经不能满足应用要求,而新出现的计算框架,如基于内存的计算框架Spark、流式计算框架Storm等等,MRv1不能支持多种计算框架并存。

        Hadoop1.0即第一代Hadoop由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。Hadoop2.0即第二代Hadoop为克服Hadoop1.0中的不足:针对Hadoop1.0单NameNode制约HDFS的扩展性问题,提出HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时彻底解决了NameNode单点故障问题;针对Hadoop1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现。


        这样就使得框架从“一种计算框架一个集群”的模式转变为“共享集群”的模式,这样的好处是:

        (1)资源利用率大大提高。一种计算框架一个集群,往往会由于应用程序数量和资源需求的不均衡性,使得在某段时间有些计算框架集群资源紧张,而另外一些集群资源空闲。共享集群模式则通过多种框架共享资源,使得集群中的资源得到更加充分的利用;

        (2)运维成本大大降低。共享集群模式使得少数管理员就可以完成多个框架的统一管理;

        (3)共享集群的模式也让多种框架共享数据和硬件资源更为方便。

二、Yarn的基本架构

        Yarn是Hadoop2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicatioinMaster。其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。

        Yarn总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负责对NodeManager上资源进行统一管理和调用。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。Yarn基本组成如下图所示:


        1、ResourceManager(RM)全局的资源管理器,负责整个系统的资源管理和分配,它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationManager,ASM);

        2、NodeManager(NM)每个节点上的资源和任务管理器,一方面它会定时地向RM汇报本节点上的资源使用情况和各个 Container的运行状态,另一方面它接收并处理来自AM的Container启动/停止等各种请求;

        3、ApplicationMaster(AM)用户提交的每个应用程序均包含一个AM,主要功能包括:a、与RM调度器协商以获取资源(用Container表示);b、将得到的任务进一步分配给内部的任务;c、与NM通信以启动和停止任务;d、监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务;

       4、Container是Yarn中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM和RM申请资源时,RM为AM返回的资源便是用Container表示的。Yarn会为每个任务分配一个Conatiner,且该任务只能使用该Container中描述 的资源。需要注意的是Container不同于MRv1中的slot,它是一个动态资源划分单位,是根据应用程序的需求动态生成的。


三、参考文献

1、《Hadoop技术内幕---深入解析YARN架构设计与实现原理》

2、http://www.chinacloud.cn/show.aspx?id=23045&cid=12

3、http://www.ibm.com/developerworks/cn/data/library/bd-yarn-intro/

4、http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/

5、http://book.51cto.com/art/201312/422026.htm

6、http://dongxicheng.org/mapreduce-nextgen/hadoop-1-and-2-resource-manage/


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

hadoop 2.6中管理界面

http://192.168.24.161:8088/cluster    - Hadoop Task Tracker 状态  http://192.168.24.161:50070/        ...

YARN 配置、启动命令、 WEB UI 页面

报错要首先去看日志文件的报错信息 hadoop-2.5.0/logs/查看具体的日志文件 查看以.log 结尾的文件 设置reduce 的获取数据的方式,yarn-site.xml yarn.nod...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Windows环境下采用eclipse连接虚拟机中的伪分布式集群

目的及意义 学会搭建伪分布式集群环境,以便于理解MapReduce及HDFS; 采用eclipse与伪分布式集群连接有利于分布式程序的调试; 现在网络上的文章多是介绍如何搭建伪分布式集群或者是仅介绍在...

解决Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 等一系列问题

Windows下的 Eclipse上调试Hadoop2代码,所以我们在windows下的Eclipse配置hadoop-eclipse-plugin-2.6.0.jar插件,并在运行Hadoop代码时...

Hadoop Yarn 框架原理及运作机制

1.1 YARN 基本架构 YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManage...

Hadoop Yarn多用户资源管理–Fair Scheduler介绍与配置

Hadoop Yarn多用户资源管理–Fair Scheduler介绍与配置 时间 2015-10-26 17:33:54  极客头条 原文  http://lxw1234.com/archives...

Hadoop-YARN(资源管理系统)

转:http://www.cnblogs.com/sy270321/p/4398703.html   YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceMana...

分析资源管理系统的演变: 从Mesos,YARN再到Google Omega

我觉得资源管理器所要处理的问题无外乎几块:资源分配的策略,资源分配的粒度,资源分配的方式,不同类型任务的调度等。看了Google新一代资源管理器Omega的论文之后,对比Mesos和YARN总结了下面...

Hadoop-YARN(资源管理系统)

转:http://www.cnblogs.com/sy270321/p/4398703.html YARN (Yet Another Resource Negotiator另一种资源协调...

统一资源管理与调度平台(系统)介绍

背景 随着互联网的高速发展,基于数据密集型应用的计算框架不断出现,从支持离线处理的MapReduce,到支持在线处理的Storm,从迭代式计算框架Spark到流式处理框架S4,…,各种框架诞生于不同...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)