关闭

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

2362人阅读 评论(0) 收藏 举报
分类:

         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/


0
0
查看评论

Yarn的原理与资源调度

本节,主要介绍yarn的基本原理以及资源调度。在hadoop1.0不能满足多系统集成的背景下孕育了yarn的产生。由于多分布式系统可以很好的集成,因此yarn的出现使得整个集群的运维成本大大降低。同时,yarn可以很好的利用集群资源,避免资源的浪费。除此之外,yarn的出现实现了集群的数据共享问题。...
  • yunpiao123456
  • yunpiao123456
  • 2016-07-01 19:24
  • 6727

Hadoop-YARN(资源管理系统)

转:http://www.cnblogs.com/sy270321/p/4398703.html   YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负...
  • u014695188
  • u014695188
  • 2017-01-19 14:45
  • 516

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

Hadoop Yarn多用户资源管理–Fair Scheduler介绍与配置 时间 2015-10-26 17:33:54  极客头条 原文  http://lxw1234.com/archives/2015/10/536.htm 主题 ...
  • javastart
  • javastart
  • 2017-01-05 19:44
  • 810

Yarn 资源管理

环境说明:HDP2.5 + Ambari 在linux centos6上搭建的集群 一、Yarn 资源管理简述:yarn默认提供了两种调度规则,capacity scheduler和fair scheduler。 现在使用比较多的是capacity scheduler。具体的实现原理和调度源码可以g...
  • u013850277
  • u013850277
  • 2017-11-07 21:20
  • 136

YARN动态资源池使用配置

动态资源池是用来做资源配置和调度策略管理,动态资源池中可以运行YARN应用和Impala查询任务。动态资源池允许用户在运行YARN应用或Impala查询任务的时候指定特定的池并调度池中可用的资源。一个典型的应用场景就是当我们通过Oozie调度Pig任务的时候,如果我们同时提交大量的Oozie任务,O...
  • kissmelove01
  • kissmelove01
  • 2015-05-22 15:55
  • 4637

hadoop 2.6中管理界面

http://192.168.24.161:8088/cluster    - Hadoop Task Tracker 状态  http://192.168.24.161:50070/           -...
  • clerk0324
  • clerk0324
  • 2016-07-15 11:13
  • 7532

Hadoop 启动 YARN

1,首先进入hadoop目录:cd /usr/local/hadoop 2,修改配置文件 mapred-site.xml,这边需要先进行重命名:      mv ./etc/hadoop/mapred-site.xml.template ./etc...
  • u012414590
  • u012414590
  • 2017-01-10 22:00
  • 3034

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

报错要首先去看日志文件的报错信息 hadoop-2.5.0/logs/查看具体的日志文件 查看以.log 结尾的文件 设置reduce 的获取数据的方式,yarn-site.xml<property> <name>yarn.nodemanager.aux-services&...
  • haoyuexihuai
  • haoyuexihuai
  • 2016-10-30 20:15
  • 5541

yarn任务调度

yarn作为hadoop目前最新的调度工具,在其上面调度作业是非常重要的 Hadoop YARN同时支持内存和CPU两种资源的调度(默认只支持内存,如果想进一步调度CPU,需要自己进行一些配置),本文将介绍YARN是如何对这些资源进行调度和隔离的。yarn对于自己运行时作业的资源分配模式有Ca...
  • LW_GHY
  • LW_GHY
  • 2016-07-05 08:36
  • 1637

查看yarn当前运行任务列表

Author: kwu 查看yarn当前运行任务列表,可使用如下命令查看:
  • kwu_ganymede
  • kwu_ganymede
  • 2015-10-13 13:20
  • 4007
    个人资料
    • 访问:240412次
    • 积分:4436
    • 等级:
    • 排名:第8026名
    • 原创:209篇
    • 转载:25篇
    • 译文:0篇
    • 评论:16条
    代码库
    博客专栏
    最新评论