Apache Hadoop YARN - 项目背景与简介

Apache Hadoop YARN - 项目背景与简介 | Ji ZHANG's Blog
http://shzhangji.com/blog/2013/05/25/apache-hadoop-yarn-background-and-an-overview/

YARN的核心思想是将JobTracker的两个职能,即资源管理和脚本调度/监控,分解为两个独立的组件:全局ResourceManager以及按应用拆分的ApplicationMaster(AM)。


原文:http://hortonworks.com/blog/apache-hadoop-yarn-background-and-an-overview/
日前,Apache Hadoop YARN已被提升为Apache软件基金会的子项目,这是一个值得庆祝的里程碑。这里我们也第一时间为各位献上Apache Hadoop YARN项目的系列介绍文章。YARN是一个普适的、分布式的应用管理框架,运行于Hadoop集群之上,用以替代传统的Apache Hadoop MapReduce框架。
MapReduce 模式
本质上来说,MapReduce模型包含两个部分:一是Map过程,将数据拆分成若干份,分别处理,彼此之间没有依赖关系;二是Reduce过程,将中间结果汇总计算成最终结果。这是一种简单而又条件苛刻的模型,但也促使它成为高效和极易扩展的并行计算方式。
Apache Hadoop MapReduce是当下最流行的开源MapReduce模型。
特别地,当MapReduce配合分布式文件系统,类似Apache Hadoop HDFS,就能在大集群上提供高吞吐量的计算,这一经济效应是Hadoop得以流行的重要原因。
这一模式成功的原因之一是,它使用的是“移动计算能力至数据节点”而非通过网络“移动数据至计算节点”的方式。具体来说,一个MapReduce任务会被调度到输入数据所在的HDFS节点执行,这会极大地减少I/O支出,因为大部分I/O会发生在本地磁盘或是同一机架中——这是核心优势。
回顾2011年的Apache Hadoop MapReduce
Apache Hadoop MapReduce是Apache基金会下的开源项目,实现了如上所述的MapReduce编程模式。作为一个在该项目中全职开发了六年的工作者,我通常会将它细分为以下几个部分:
提供给最终用户使用的 MapReduce API ,用来编写MapReduce应用程序。
MapReduce框架 ,用来实现运行时的各个阶段,即map、sort/shuffle/merge、reduce。
MapReduce系统 ,一个完整的后端系统,用来运行用户的MapReduce应用程序,管理集群资源,调度上千个并发脚本。

这样的划分可以带来非常明显的优势,即最终用户只需关心MapReduce API,而让框架和后端系统去处理资源管理、容错、调度等细节。
目前,Apache Hadoop MapReduce系统由一个JobTracker和多个TaskTracker组成,也分别称他们为master和slave节点。

MRArch.png
JobTracker负责的工作包括资源管理(即管理工作节点TaskTracker),跟踪资源消耗和可用情况,以及每个脚本的生命周期(脚本调度,进度跟踪,容错等)。
TaskTracker的职责比较简单:根据JobTracker的指令来启动和关闭工作进程,并定时向JobTracker汇报处理进度。
其实很早我们就意识到Hadoop的MapReduce框架需要被拆解和调整,特别是JobTracker,我们需要提升它的可扩展性,提高对集群的利用率,让用户能够方便地进行升级(即用户需要的敏捷性),并能支持MapReduce以外的脚本类型。
长久以来,我们都在做修复和更新,如近期加入的JobTracker高可用和HDFS故障恢复(这两个特性都已包含在Hortonworks Data Platform v1中)。但我们渐渐发现,这些特性会增加维护成本,而且并不能解决一些核心问题,如支持非MapReduce脚本,以及敏捷性。
为什么要支持非MapReduce类型的脚本?
MapReduce对大部分应用程序来说已经足够,但仍有一些场景并不适用,如图形计算(Google Pregel / Apache Giraph)、交互式建模(MPI)。当所有的企业数据都已存放在Hadoop HDFS中时,支持多种处理模型就变得额外重要。
此外,MapReduce本质上是以批量处理为核心的,对于日益增长的实时和近实时处理的客户需求,如流式计算以及CEPFresil等,就无能为力了。
如果Hadoop能够支持这一特性,企业会从对Hadoop的投资中得到更多回报,因为他们可以减少数据迁移所需要的管理和维护成本。
为何要提升可扩展性?
根据摩尔定律,同样的价格所能购买到的计算能力一直在大幅上升。让我们看看以下两组数字:
2009年:8核CPU,16GB内存,4x1TB硬盘;
2012年:16核以上的CPU,48至96GB内存,12x2TB或12x3TB的硬盘。

同样价格的服务器,其各方面的计算能力要比两到三年以前提升了两倍。Hadoop的MapReduce在2009年便能支持约5000台节点,所以随着机器性能的提升,对其高可扩的要求也与日俱增。
集群资源利用率不高的典型症候是?
在现有的系统中,集群由节点组成,节点上有map槽位和reduce槽位,两者不能互相替代。这样一来,很有可能map槽位已经耗尽,而reduce还是空闲的,反之亦然。修复这一问题对于提升集群资源利用率来说是必不可少的。
敏捷性为何重要?
在现实应用中,Hadoop通常会部署在共享的、多租户的系统上。所以,对Hadoop进行升级时会影响很大一部分甚至是所有的应用。基于这一点,用户会对升级持保守态度,因为不想因此引发一系列的问题。所以,一个支持多版本Hadoop的架构就变得非常重要。
Apache Hadoop YARN 诞生
YARN的核心思想是将JobTracker的两个职能,即资源管理和脚本调度/监控,分解为两个独立的组件:全局ResourceManager以及按应用拆分的ApplicationMaster(AM)。
主节点的ResourceManager以及其它节电的NodeManager(NM),形成了一个新的更为通用的分布式应用管理模式。
ResourceManager负责应用程序的资源分配。ApplicationMaster会和ResourceManager进行协商,并与节点上的NodeManager协作,运行和监控每个工作进程。
ResourceManager的调度器是可定制的,能够根据计算能力、队列大小进行资源调配。调度器不包含任何对工作进程的监控和跟踪,不会去重启失败的脚本。调度器会根据应用程序申请的资源进行分配,它是建立在一个资源容器抽象层(Resource Container)之上的,其中包括了内存、CPU、硬盘、网络等要素信息。
NodeManager运行在每个节点之上,负责运行应用程序的工作进程,监控它们的资源占用情况,并向ResourceManager汇报。
每个应用都会有一个专属的ApplicationMaster,它会负责和调度器协商资源分配,跟踪工作进程的状态和进度。ApplicationMaster本身也是以一个工作进程来运行的。
以下是YARN的架构图:

YARNArch.png
值得一提的是,我们在为YARN开发MapReduce API时没有做任何较大的改动,所以现有的程序可以很方便地进行迁移。关于这点我们会在以后的文章中详述。
下一节我们会深入了解YARN的架构,阐述它所带来的各种优点,如高可扩、支持多类型脚本(MapReduce、MPI等),以及它是如何提升集群资源利用率的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容