说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Hadoop YARN的发展史与详细解析

HTML文档下载 WORD文档下载 PDF文档下载
Apache Hadoop于2005年推出,提供了核心的MapReduce处理引擎来支持大规模数据工作负载的分布式处理。7年后的今天,Hadoop正在经历着一次彻底检查,不仅支持MapReduce,还支持其他分布式处理模型。

【编者按】成熟、通用让Hadoop深得大数据玩家喜爱,即使是在YARN出现之前,在流处理框架林立下,Hadoop仍然被众多机构广泛运用在离线处理之上。借鉴于Mesos,MapReduce获得新生,YARN提供了更加优秀的资源管理器,让Storm等流处理框架同样可以运行在Hadoop集群之上;但是别忘记,Hadoop有着远比Mesos成熟的社区。从兴起到唱衰再到兴起,这头搬运大数据的大象已更加成熟、稳重,同时我们也相信,在未来container等属性加入后,Hadoop生态系统必将发扬光大。

以下为文章内容

带有 MapReduce 的 Apache Hadoop 是分布式数据处理的骨干力量。借助其独特的横向扩展物理集群架构和由 Google 最初开发的精细处理框架,Hadoop 在大数据处理的全新领域迎来了爆炸式增长。Hadoop 还开发了一个丰富多样的应用程序生态系统,包括 Apache Pig(一种强大的脚本语言)和 Apache Hive(一个具有类似 SQL 界面的数据仓库解决方案)。

不幸的是,这个生态系统构建于一种编程模式之上,无法解决大数据中的所有问题。MapReduce 提供了一种特定的编程模型,尽管已通过 Pig 和 Hive 等工具得到了简化,但它不是大数据的灵丹妙药。我们首先介绍一下 MapReduce 2.0 (MRv2) — 或 Yet Another Resource Negotiator (YARN) — 并快速回顾一下 YARN 之前的 Hadoop 架构。

Hadoop 和 MRv1 简单介绍

Hadoop 集群可从单一节点(其中所有 Hadoop 实体都在同一个节点上运行)扩展到数千个节点(其中的功能分散在各个节点之间,以增加并行处理活动)。图 1 演示了一个 Hadoop 集群的高级组件。


图 1. Hadoop 集群架构的简单演示

一个 Hadoop 集群可分解为两个抽象实体:MapReduce 引擎和分布式文件系统。MapReduce 引擎能够在整个集群上执行 Map 和 Reduce 任务并报告结果,其中分布式文件系统提供了一种存储模式,可跨节点复制数据以进行处理。Hadoop 分布式文件系统 (HDFS) 通过定义来支持大型文件(其中每个文件通常为 64 MB 的倍数)。

当一个客户端向一个 Hadoop 集群发出一个请求时,此请求由 JobTracker 管理。JobTracker 与 NameNode 联合将工作分发到离它所处理的数据尽可能近的位置。NameNode 是文件系统的主系统,提供元数据服务来执行数据分发和复制。JobTracker 将 Map 和 Reduce 任务安排到一个或多个 TaskTracker 上的可用插槽中。TaskTracker 与 DataNode(分布式文件系统)一起对来自 DataNode 的数据执行 Map 和 Reduce 任务。当 Map 和 Reduce 任务完成时,TaskTracker 会告知 JobTracker,后者确定所有任务何时完成并最终告知客户作业已完成。

从 图 1 中可以看到,MRv1 实现了一个相对简单的集群管理器来执行 MapReduce 处理。MRv1 提供了一种分层的集群管理模式,其中大数据作业以单个 Map 和 Reduce 任务的形式渗入一个集群,并最后聚合成作业来报告给用户。但这种简单性有一些隐秘,不过也不是很隐秘的问题。

MRv1 的缺陷

apReduce 的第一个版本既有优点也有缺点。MRv1 是目前使用的标准的大数据处理系统。但是,这种架构存在不足,主要表现在大型集群上。当集群包含的节点超过 4,000 个时(其中每个节点可能是多核的),就会表现出一定的不可预测性。其中一个最大的问题是级联故障,由于要尝试复制数据和重载活动的节点,所以一个故障会通过网络泛洪形式导致整个集群严重恶化。

但 MRv1 的最大问题是多租户。随着集群规模的增加,一种可取的方式是为这些集群采用各种不同的模型。MRv1 的节点专用于 Hadoop,所以可以改变它们的用途以用于其他应用程序和工作负载。当大数据和 Hadoop 成为云部署中一个更重要的使用模型时,这种能力也会增强,因为它允许在服务器上对 Hadoop 进行物理化,而无需虚拟化且不会增加管理、计算和输入/输出开销。

我们现在看看 YARN 的新架构,看看它如何支持 MRv2 和其他使用不同处理模型的应用程序。


YARN (MRv2) 简介

为了实现一个 Hadoop 集群的集群共享、可伸缩性和可靠性。设计人员采用了一种分层的集群框架方法。具体来讲,特定于 MapReduce 的功能已替换为一组新的守护程序,将该框架向新的处理模型开放。

回想一下,由于限制了扩展以及网络开销所导致的某些故障模式,MRv1 JobTracker 和 TaskTracker 方法曾是一个重要的缺陷。这些守护程序也是 MapReduce 处理模型所独有的。为了消除这一限制,JobTracker 和 TaskTracker 已从 YARN 中删除,取而代之的是一组对应用程序不可知的新守护程序。


图 2. YARN 的新架构

YARN 分层结构的本质是 ResourceManager。这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager 将各个资源部分(计算、内存、带宽等)精心安排给基础 NodeManager(YARN 的每节点代理)。ResourceManager 还与 ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监视它们的基础应用程序。在此上下文中,ApplicationMaster 承担了以前的 TaskTracker 的一些角色,ResourceManager 承担了 JobTracker 的角色。

ApplicationMaster 管理一个在 YARN 内运行的应用程序的每个实例。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配)。请注意,尽管目前的资源更加传统(CPU 核心、内存),但未来会带来基于手头任务的新资源类型(比如图形处理单元或专用处理设备)。从 YARN 角度讲,ApplicationMaster 是用户代码,因此存在潜在的安全问题。YARN 假设 ApplicationMaster 存在错误或者甚至是恶意的,因此将它们当作无特权的代码对待。

NodeManager 管理一个 YARN 集群中的每个节点。NodeManager 提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1 通过插槽管理 Map 和 Reduce 任务的执行,而 NodeManager 管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。YARN 继续使用 HDFS 层。它的主要 NameNode 用于元数据服务,而 DataNode 用于分散在一个集群中的复制存储服务。

要使用一个 YARN 集群,首先需要来自包含一个应用程序的客户的请求。ResourceManager 协商一个容器的必要资源,启动一个 ApplicationMaster 来表示已提交的应用程序。通过使用一个资源请求协议,ApplicationMaster 协商每个节点上供应用程序使用的资源容器。执行应用程序时,ApplicationMaster 监视容器直到完成。当应用程序完成时,ApplicationMaster 从 ResourceManager 注销其容器,执行周期就完成了。

通过这些讨论,应该明确的一点是,旧的 Hadoop 架构受到了 JobTracker 的高度约束,JobTracker 负责整个集群的资源管理和作业调度。新的 YARN 架构打破了这种模型,允许一个新 ResourceManager 管理跨应用程序的资源使用,ApplicationMaster 负责管理作业的执行。这一更改消除了一处瓶颈,还改善了将 Hadoop 集群扩展到比以前大得多的配置的能力。此外,不同于传统的 MapReduce,YARN 允许使用 Message Passing Interface 等标准通信模式,同时执行各种不同的编程模型,包括图形处理、迭代式处理、机器学习和一般集群计算。


您需要知道的事

随着 YARN 的出现,您不再受到更简单的 MapReduce 开发模式约束,而是可以创建更复杂的分布式应用程序。实际上,您可以将 MapReduce 模型视为 YARN 架构可运行的一些应用程序中的其中一个,只是为自定义开发公开了基础框架的更多功能。这种能力非常强大,因为 YARN 的使用模型几乎没有限制,不再需要与一个集群上可能存在的其他更复杂的分布式应用程序框架相隔离,就像 MRv1 一样。甚至可以说,随着 YARN 变得更加健全,它有能力取代其他一些分布式处理框架,从而完全消除了专用于其他框架的资源开销,同时还简化了整个系统。

为了演示 YARN 相对于 MRv1 的效率提升,可考虑蛮力测试旧版本的 LAN Manager Hash 的并行问题,这是旧版 Windows® 用于密码散列运算的典型方法。在此场景中,MapReduce 方法没有多大意义,因为 Mapping/Reducing 阶段涉及到太多开销。相反,更合理的方法是抽象化作业分配,以便每个容器拥有密码搜索空间的一部分,在其之上进行枚举,并通知您是否找到了正确的密码。这里的重点是,密码将通过一个函数来动态确定(这确实有点棘手),而不需要将所有可能性映射到一个数据结构中,这就使得 MapReduce 风格显得不必要且不实用。

归结而言,MRv1 框架下的问题仅是需要一个关联数组,而且这些问题有专门朝大数据操作方向演变的倾向。但是,问题一定不会永远仅局限于此范式中,因为您现在可以更为简单地将它们抽象化,编写自定义客户端、应用程序主程序,以及符合任何您想要的设计的应用程序。


开发 YARN 应用程序

使用 YARN 提供的强大的新功能和在 Hadoop 之上构建自定义应用程序框架的能力,您还会面临新的复杂性。为 YARN 构建应用程序,比在 YARN 之前的 Hadoop 之上构建传统 MapReduce 应用程序要复杂得多,因为您需要开发一个 ApplicationMaster,这就是在客户端请求到达时启动的 ResourceManager。ApplicationMaster 有多种需求,包括实现一些需要的协议来与 ResourceManager 通信(用于请求资源)和 NodeManager(用于分配容器)。对于现有的 MapReduce 用户,MapReduce ApplicationMaster 可最大限度地减少所需的任何新工作,从而使部署 MapReduce 作业所需的工作量与 YARN 之前的 Hadoop 类似。

在许多情况下,YARN 中一个应用程序的生命周期类似于 MRv1 应用程序。YARN 在一个集群中分配许多资源,执行处理,公开用于监视应用程序进度的接触点,且最终在应用程序完成时释放资源并执行一般清理。这个生命周期的一种样板实现可在一个名为 Kitten 的项目中获得(参见 参考资料)。Kitten 是一组工具和代码,可简化 YARN 中的应用程序开发,从而使您能够将精力集中在应用程序的逻辑上,并在最初忽略协商和处理 YARN 集群中各种实体的局限性的细节。但是,如果希望更深入地研究,Kitten 提供了一组服务,可用于处理与其他集群实体(比如 ResourceManager)的交互。Kitten 提供了自己的 ApplicationMaster,很适用,但仅作为一个示例提供。Kitten 大量使用了 Lua 脚本作为其配置服务。


下一步计划

尽管 Hadoop 继续在大数据市场中发展,但它已开始了一场演变,以解决有待定义的大规模数据工作负载。YARN 仍然在积极发展且可能不适合生产环境,但 YARN 相对传统的 MapReduce 而言提供了重要优势。它允许开发 MapReduce 之外的新分布式应用程序,允许它们彼此同时共存于同一个集群中。YARN 构建于当前 Hadoop 集群的现有元素之上,但也改进了 JobTracker 等元素,可以提高可伸缩性和增强许多不同应用程序共享集群的能力。YARN 很快会来到您近旁的 Hadoop 集群中,带来它的全新功能和新复杂性。


参考资料

学习

  • 有关 Hadoop 及其生态系统中其他元素的最新新闻,请查阅  Apache Hadoop 项目站点。除了 Hadoop,您还将了解到 Hadoop 是如何(借助 YARN 等新技术)横向扩展以及(借助 Pig、Hive 等众多新技术)纵向升级的。
  • 随着 YARN 不断成熟,您会了解到使用 YARN 模型编写应用程序的早期方法。一个有用的参考资料是  编写 YARN 应用程序。您将在这篇参考资料中发现 YARN 引入的一些新复杂性,以及对于在一种 YARN 部署中用于实体间通信的各种协议的讨论。
  • 使用 Apache 的  Distributed Shell Source。
  • 查看来自  Big Data University 的关于众多主题的免费课程,包括 Hadoop 基础和文本分析精要,以及 SQL Access for Hadoop 和实时流计算。
  • Apache Hadoop 0.23 中的 MRv2,这是对一个 JARN 集群的重要技术细节的不错介绍。
  • Kitten: For Developers Who Like Playing with YARN 提供了对 YARN 应用程序开发的 Hitten 抽象的有用介绍。
  • 在  developerWorks 大数据内容专区 中了解有关大数据的更多信息。查找技术文档、指南文章、教育、下载、产品信息等。

原文链接: 将 Hadoop YARN 发扬广大 (责编/仲浩)

    Web设计师必备的10款最佳排版工具 诺基亚CEO谈平板计划 Android为候选系统 244亿美元!戴尔公司正式完成私有化 对抗苹果 Facebook或推Find My Friends应用 前谷歌工程团队负责人:如何打造一个完美的产品 好消息!Google Drive可存储共享JavaScript等网站 Android Rivers:用Kotlin语言写出的新闻应用 辞旧迎新 老牌游戏开发商的移动进化之路 iSuppli:硬盘市场持续萎缩 大数据应用成重要市场 全球最大校园Hackathon:失败后,你能学到什么? 走进Evasi0n,越狱黑客如何拿到iOS权限 提升服务扩展性和冗余的八个编码方向 分析数据预测未来?数据挖掘绝不是大公司的专利 揭秘LinkedIn数据科学家如何工作 为什么响应式设计对SEO有好处? SpaceX团队:想登陆火星吗?学好C++吧 可穿戴设备:越来越清晰的苹果iWatch 苹果设计师:开发者们的应用图标设计对了吗? AWS兴起之路:尚未成功 仍需努力 John Carmack:我们为什么不开发Linux游戏 最具创新力公司50强:耐克居首 Web如何成为另一个应用商店 Adobe发布Photoshop1.0.1源代码 大数据时代正在到来 微软CFO:我们的移动战略没有“B计划” TIOBE 2013年2月编程语言排行榜:历经十月Java重返第一 为让用户亲身体验产品 谷歌年底或开零售商店 谷歌推Chrome API支持HTML5实现本地离线数据存储与同步 Ubuntu开发者预览版将于月底开放下载 因Java漏洞,Facebook遭受恶意软件攻击但未泄密 HTML5预测 取代本地App将成为可能 急!Word档案变成X档案了!-------请微软专家也过来帮忙 双重系统引导的问题 现在网上还有没有好的免费个人主页空间?最好支持asp等等,空间小点没关系,高分求! 请问什么地方有PPP over Ethernet(PPPoE)协议 技术资料!!! 请问为何我的程序在Release版本下出错? 再帮忙看看这段代码,即使密码正确也显示"错误:请确认阁下的身份!" 怎么回事啊? 请教这个API(ShowWindow)怎么使用? 谁能告诉我 virtual(虚) 析构函数目的何在干什么用的? 救急 装一个rose要多大空间啊 关于CJ60库实现Visual stduio的界面的问题! 请问要实现在空表上建立数据时,如何做到text1.text能显示“1000”,即Number的“标识种子”值! 这个UDL文件错在哪? 推荐一篇文章《麦子的颜色》 大家来灌水. vc service pack? 关于聊天室的界面 c++库函数的头文件有.h和没有有什么区别?为什么c++的库函数在VC很多不能用,怎么办? 可以在dll里面放SDI框架并调用吗? MIDAS中,怎样通过Client.exe生成MS Sql2000数据库?(就像《管家婆》那样,运行一次客户端,输入数据库的名称,就会自动在SQL Server2000 如何查找一个对话框的owner窗口? 我应该选择VC还是C#??? 在系统启动时至少有一个服务或驱动程序产生错误,详细信息,请使用事件查看器查看事件日志 操作系统是如何发现新插入的设备的? 关于对Com1,Com2读取条形码的编程 帮个忙,先,谢了! 接着那个堆栈问题,创建了,试验了。但应用时出现了对创建错误? 我想在对话框上输出一个char数组,用什么方法比较好????????????? 怎样移动较大副图片的时候避免或者尽量减少闪动? 怎么把网络编程和数据库联系起来 如何贴背景透明的按钮?急,急,在线等待!!! 奇怪了! 请问如何获得居于网中一个工作组下的所有计算机?? 还是一个dll内部变量的问题。 怎么回事? 送分! 大家看看 请问MSDN的帮助怎么获得 怎么样获得一同名text表单域的值? **C++语言的设计和演化** 图书好贵呀!!! 求表达式正确与否的校验算法 怎样控制DllMain?在哪里可以编辑这个函数? 同一个句柄对于所有进程是否一样? 我的red hat linux8 怎么才能配置声卡 如何判断一个字符串是否是常数 《Java与模式》一书已经出版 --- 作者 各为高手,如何能够看到我打开网页的session的值 关于 Geforce256 的问题. 一定给分!数据库查询问题 solaris下有没有用过syslog编程的? 推荐个好点的flash的控件吧 修改病句. 李红的写作水平有了明显的进步. 神是否真的不存在与用科学解释不了的事情我今天突然熊到一个问题.以前人们常常相信神的存在,可是后来有了科学一些被人们认为是神的恩赐一类的事情被揭开真相,可是有没有人想过那些 想去西欧组团旅游想知道欧洲的三月哪个国家景色好.最好是西欧,我们想组团去欧洲旅游, 蚕豆、青菜、黄瓜、冬瓜、番茄、苹果、橘子、葡萄、桃子、荔枝属于被子植物的有哪些?判断的理由是什么 科学解释不了的事,难道真的不存在吗? 有关西欧的旅游景点及人文,习俗? 香蕉 苹果 桔子 西红柿 荔枝 哪个是不同类的词 西欧旅游景点 都有哪些?最好有视屏介绍 扑克牌的四个king queen jack 和两个joker的来历是怎样的? They_ to be here an hour ago.A:suppose B:supposed C:were supposed D:are supposed应该选择哪项,原因是什么!谢谢各位 They are going to New York next month 对 New York 划线提问的答案 Jack和King这两个单词在扑克牌里代表的是什么数字? 菊花一般要多久才开花 Na2CO3 可以做建筑材料吗 The Smiths and jack ---- going to Paris For a holiday next monthA are B is Chave Dwil A和B中.最好能扩展一下 请问你的四级成绩出来了吗?你涂的答题卡有没有问题? They ____Shanghai next month.A.are going to move B.are going to 选那个,为什么. the Smiths plan to m__ to Qingdao next mouth. 选择重音位置与其它3个不同的单词A.brigeB.pictureC.cupboardD.excuse They are going to ShangHai on b______next month 1.The Smiths plan(计划) to m___ to Qingdao next month.2.The boy got up late,so he didn't eat a___ for breakfast.请快速回答. 欧洲各国的语言是不是都很类似? tout等四词作泛指形容词,tout ceci est peu important,这一切都不重要.应该是复数,tout是单数 假设有一种植物,每天长高一倍.20天正好长到20厘米.问长到5厘米时是第几天? 请帮我把这句翻译成英文:那个未来或许没你,但有上课谈的理想. 从四个选项中选出一个重音位置与其他三个不同的单词()1.A.palace B.country C.capital D.today ( ) 2.A.enjoy B.bathroom C.meter D.message ( ) 3.A.Russian B.Holloween C.homework D.usually( ) 4.A.geography B.biology C.English D.be 有一种植物,每天长高一倍,10天正好长到28厘米高.他长到七厘米时,需要多少天 马尾松与黑松的区别,怎样区分马尾松与黑松~ tout等四词作泛指形容词,tout ceci est peu important,这一切都不重要.应该是附属,tout是单数怎么能代表? 一种植物每天长高1倍,长到21天时正好是40厘米.请问它20厘米时是第几天?要有计算过程哦. 明天李红母亲的生日 作为李红的好朋友请你给李红出个主意,给李红的母亲买什么礼 They came here in autumn(同义句)They___ ____here_____ _____ The Greens went to Sanya in February同义句 The Greens ____ _____ ______Sanya______ ________ 假设有一种植物 每天长高一倍 20天正好长到20厘米高 请问 长到5厘米时是第几天 花卉园买回月季和郁金香共1700盆 月季的3分之2和郁金香的75%相等 两种花各买了多少盆?各位路过的或没路过的 这道题怎么做 不要方程 they came here over ten years ago的同义句they came here ____ ____ten yeas ago 一种植物每天长高1倍,长到21天时正好是40厘米.请问它20厘米时是第几天? 求英文邓亚萍传记一篇 四级答题卡漏涂?四级的答题卡,我中间的题漏涂了,空过去了,请问会不会影响到下面的题,是不是下面的题都提上去批?希望确定的帮忙回答一下, 生物等级分类法所用单位从低到高排列的 我叫时传振我的英文名叫 用什么办法控制菊花开花的时间? 分类法只适用于对生物进行分类,对其他物质的分类不合适 (对还错) i ___(记得)they once came here for dinner. 法语中5个特殊的形容词 beau ,nouveau,vieux,fou,mou 求解释啊 阳性单数形容词的解释! 根据生物分类法,将大象,鹦鹉,海豹,热带鱼,珊瑚鸵鸟分类谢谢,快 为什么树叶再不同季节颜色会有变化 现代生物科技分类 1,There are faults of which none of us get rid.* 这句怎么翻译 ,是否有用都什么结构或句型?2,Word came that an iron and steel works,together with some other factories,was to be built.* 3,We saw several natives advancing towards our par 这是什么植物?叶子生长中颜色逐渐变化!非常漂亮! 想问下各位法文劲人 法文形容词 doux(味道淡 手感软) 以及 mou(手感软) 这两个字的阳性阴性单复数是甚麼? Through the English language peoples of different countries are able to work together and make things even better 求四个关于树木的成语 有一种植物每天长一倍,第19天的时候长到36厘米,请问长到18厘米需要用几天? They flew from Qingdao to Hong Kong last Sunday同义句改成下面形式的They went from Qingdao to Hong Kong last Sunday 描写有花草树木的成语,说出四个 英语四级答题卡1上面还用写作文题目吗? 他们要乘飞机到香港吗?_____they _____ to Hong Kong? 植物叶子颜色变浅以前叶子都是绿油油的,现在颜色越来越淡,尤其是滴水观音,茎还软软的,经常自己折断了.植物放在阳光充足的地方.温度也不低.是缺少什么东西吗?还是太阳晒过头或是其他 英语四级答题卡的A/B卡选项是涂满还是打钩我记得试卷上有写在A/B选项后面打钩?可是道题卡不是只有填涂才有效么? Tomorrow they ____ ____(fly) to Hong Kong.回答准确
    备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘