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

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 发扬广大 (责编/仲浩)

    新环境下的新体验是互联网硬件火热的根本原因 信息安全救星 ——变形代码产品ShapeShifter AWS启动大规模降价,引领行业降价潮流 Windows 8.1 Update 1最新版的截图再遭曝光 2013年软件领域因缺陷导致的五大事件 专访AMD技术高管 详解Kaveri技术性能及新开发特性 网络的东西南北:从SDN到网络虚拟化 Bug让Chrome浏览器成了窃听器 联想23亿美元收购IBM X86服务器硬件及服务 Mozilla联手富士康推出Firefox OS平板 基于Web提供服务 GitHub中国游记最终回——开源与车库的碰撞 学以致用,光棍极客通过大数据搞定女朋友 1月24日:Mac步入了而立之年,生日快乐! 微软2014财年Q2财报:Surface营收翻倍 趣文:假如编程语言在一起聚餐 AOL收购个性化服务公司Gravit,耗资9070万美元 谷歌三月将办Pwnium 4黑客大赛 奖金高达271.828万美元 研发周报:精简代码,为网站减负的十大建议 教育自由日:让教育资源更开放 Win8.1下解决IE11浏览器不兼容的方法 移动周报:找你妹版权战、访俄民手游、GitHub游记终回 一周消息树:1月23日全国顶级域名根服务器疑遭黑客攻击 影响巨大 下一代互联网搭建技术:高空气球,无人机,又或是卫星? 红帽认证总监:10个架构师里有4个在中国 数据中心优化的5个途径:软件定义、云计算等 收购诺基亚,微软能否再度崛起? 一周热点:阿里专家深度解析分布式系统,美团数据挖掘工程师分析企业大数据 独立游戏节:学生展示优胜者奖项得主揭晓 专访Meetup Andres Glusman:解析UX、精益创业方法论背后的强大力量 开发者不容错过的12款开源JavaScript库 搭载FusionCube,HANA内存计算助力实时运营 调查:北京和上海的pb 的程序员能挣多少钱? 谁知道用odbc连接infromix online参数怎么设?(50分 ) ASP如何实现票据打印 请问MYSQL可以支持哪些数据库文件或表格的导入? 急死我了!求教高手有关焦点的问题! 谁有《COM技术内幕》的第13章的例子的源码,送100分,谢谢先! mysql的最大链接数在哪里修改? 图像区域选取,高分求解! Shell_NotifyIcon问题 在PL_SQL中怎样用一个表中的数据去更新另一个表 oracle 9初学者 sybase的JDBC驱动字符串是什么阿?? 如何播放Flash? 我的IE不能自动填写域名了!!!第一个答对者20分! 一個很簡單的問題,在線等候,謝謝!! /usr/bin/top的原码在哪个路径下啊?小弟找了好久还是找不到急啊! 尊敬的流芳先生: 程序员考试中的一道很简单的c试题,有个问题 Sun Blade 2000 要多少钱? 活动目录中,遇到这个问题。 我的机器用程序向局域网内的另外一台机器发送一条信息,类似于发送控制台信息 [请教]会用客户端ftp软件客户端代理功能的进来帮帮忙 急求VCD的Specification! 在线紧急求助!!! 在MDI中如何更改子窗口标题? 请问有哪位好心的大哥能给我一个Bounds Checker V601_D.exe 的序列号? 100分求助如何在iPlanet中配置cgi-bin? 高分求助:请问如何确定某个窗口是否存在? 怎么样在vb中把一个excel表的数据拷贝到另一个excel中(包括行高,列宽,字体等) In Pro*c, 为什么我不能用#define UNAME_LEN 20 去定义常量. 高分 高分求《.NET开发的最佳实践与案例分析--北京讲座》示例源码及相关资料!!! 请教高手 那们有 AlphaBlend 函数的帮助中英文都行。 麻烦大家帮我看一下,代码错在那里。 详细说说rs.open sql,conn,Cursor Type,LockType 紧急求救!在线等待: 哪里可下载INTEL IPL库? 关于 我的GNOME的主Panel消失了,我该怎么办???? 一个C程序的问题求助! 请大家推荐一个支持EJB2.0 的免费的应用服务器 运行时建立数据库表 麻烦各位一下,这个错在哪了? 关于access关于自动增量的字段! 关于快捷菜单的问题。 世界上最大规模的大学生群架[真实](转载) win2000日文版与98SE怎么连接? IE6下注销用户的问题。 在线等待! 高分求助! 谁知道哪里有VB7的电子书?? php如何在长字符串中加<br>换行符,以达到强制换行目的?? 如图所示电路中,电源电压恒定,断开S1,S3,闭合S2,两电表均有示数;在断开S2,闭合S1,S3,此时两电表的如图所示电路中,电源电压恒定,断开S1,S3,闭合S2,两电表均有示数;在断开S2,闭合S1,S3, 关于南岳游记的作文我要写一篇南岳游记,虽然我去过南岳,但看了些什么我都忘了.希望大家提供些关于南岳的景色、历史、文化、传说(如果南岳有传说的话)的素材,或者告诉我写游记的方 为什么UFO出现的这么频繁呢? 我想对凡卡说300字 想去衡山旅游,想知道衡山有哪些特产?想买点特产回来送老爸和岳父 为什么外星人频繁出现不论是杭州还是广州均有大量Ufo的出现,我们国有什么值得它们频繁造访 凡卡续写300字 看云识天气 "云就像是天气的招牌" 把招牌换成代表好不好为什么 9月1日20:00,小明用天文望远镜观察到正北方向有一颗恒星,不移动望远镜,9月16日何时才能观察到这颗恒星 有错别字的街道名称急用! 哀词和冰神读后感 一个电子像一个固定不动的质子运动时,则1.有可能发射电磁波2.不.3.电子和质子组成的系统能量一定守恒4.电子和质子组成的系统动量守恒为什么不选3呢? 《天上的街市》的习题读了《天上的街市》,我仿佛看到了:( ). 续写凡卡300个字啊不过记住,在当时沙皇统治下,是不能有什麽好结局的.只会有死路一条.不要太长啊 关于各种花的文章和各种花的话花语求牡丹,茉莉,梅,桃花,向日葵,玉兰,紫罗兰,满天星,海棠的相关文章,要是名作家写的哦!如果知道一个,就说一个,说过的就不要再说了,全知道的正好,还有花 仿照五年级上册的语文书中的一篇课文《冬阳•童年•骆驼队》第四段写关于小动物的一段话!写两三句话就行!不要太多!小动物的!最好是小狗小猫~我说是最好,不是也行! 《凡卡》的续写(300字以上) "他不是个做事情的人" 如何翻译成英文? 有努力才有真正的美丽 美文400字左右 有的发 凡卡的续写300字以上. 这不是正常人会做的事 怎么翻译成英语 记金华的双龙洞,按浏览顺序依次写了双龙洞的什么? 六年级课文有破折号的句子 哪有高一英语听力 课文手指的理解和感受课文[手指]中说说对它的理解和感受 说说自己的见解是怎样获得的 是如何加深的 错别字作文要400字 艾青 太阳的话 的写作背景就是她当时是在什么样的环境下写的这首诗? 手指 这篇课文最后一自然段有三对反义词 第一对是什么?找不到. 已知α+β=1,αβ=-1,S1=α+β,S2=α^2+β^2,S3=α^3+β^3…Sn=α^n+β^n(1)计算S1= ,S2= ,S3= ,S4= (2)试写出Sn-2,Sn-1.Sn三者之间的关系式(3)根据以上得出的结论α^7+β^7 东阳·童年·骆驼队有那4个片段 大街上的错别字 街头错别字作文400字 要有2个具体事例哦 谢 太阳的话.白桦的写作背景 (√1)^2+1=(√2)^2=2,S1=2分之√1 ,(√2)^2+1=(√3)^2=3.S2=2分之√2 ,(√3)^2+1=(√4)^=4,S3=2分之√3用含有n的等式表示上述变化规律;求(S1)^2+(S2)^2+(S3)^2+.+(S10)^2的值.三角形两条直角边与斜边的关系,用一 “人的一生有两件事不可避免:死亡与纳税” 英语翻译好像是一个外国名人说的,大家有知道原文是怎么样的吗?谢谢啦!对了,那个外国人叫啥呀?谢谢 阳光季节 seasons in the sun写作背景 这些话中的破折号有什么作用(人教版小学语文六年级上册19课一面《5+2》上的题目)填序号破折号的作用:1.表示解释说明;2.表示话题转换;3.表示事项的列举;4.表示声音的延续、拖长; 高一英语听力人教版求回复 《东阳·童年·骆驼队》可分为哪四个片段 求六年级现代文·文言文点击《天上的街市》答案,请尽快给予答复,thank. 中国人民从此走上了自力更生的道路 这句话有什么错别字?实在是找不到了……请热心的人们帮找找……三楼的同志,我打的字不可能会错吧……不过呢,印错倒是很有可能…… …… 三个太阳写作背景 求以美丽无须包装为题的作文开头与结尾! 怎样下载高一下学期英语听力 西域男孩创作"season in the sun"的背景故事?听说很让人感动.要主要的故事就好了. 六年级点击《天上的街市》答案!~~~急!~~~~~~~~~~ 去杭州旅游 景点 如西湖十景 美食~啥的5月底要去杭州玩玩 3天的时间 麻烦各位熟悉杭州 了解杭州景点游玩情况的朋友指导一下 具体就说说杭州有啥好玩儿的地儿 这三天怎么安排 游西湖的 记金华的双龙洞的游览顺序,明天要交的!叶圣陶写的!.题是这样的:游览的顺序依次是--------、---------、---------、--------------------,最后-------------. 六年级第一学期语文《点击》答案 杭州的新西湖十景的旧西湖十景有哪些不光要名字还要有简介 记金华的双龙洞是按什么游览顺序 诗歌第一节中的动词可以互换位置么?为什么?神话传说中的牛郎织女,最终被王母娘娘用“天河”隔开,只有在阴历七月七日这一天才能相见,是一个悲剧故事.而作者在诗中却写得那样畅快,“天 哪里可下载新标准高一英语听力 英语翻译 天上的街市点击答案急用,现在必须要! 英语翻译是不是:there are something that just short memories.语法对么?如果不对应该是什么呢? 文言文《大道之行也》怎么解释 找错别字,错别字什么的最讨厌了 游衡山记不要抄的 要自己写的。 为什么现在UFO 这么频繁啊?最近的 广州 8.30的视频2次出现 今年还有 智利的UFO 视频 说实话我就算亲眼看到 也会认为是假的 我的意思是说:如果是假的 那些拍的是什么东西啊 国家研制的秘
    备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘