首页>参考读物>计算机科学与技术>综合

Hadoop YARN权威指南
作者 : (美)Arun C. Murthy, Vinod Kumar Vavilapalli, Doug Eadline, Joseph Niemiec, Jeff Markham 著
译者 : 罗韩梅 洪志国 杨旭 余意 龚军 译
丛书名 : 大数据技术丛书
出版日期 : 2015-04-13
ISBN : 978-7-111-49181-1
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 258
开本 : 16
原书名 : Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

Apache Hadoop驱动着大数据的变革,现在数据处理方式已经完全改变了:Apache Hadoop YARN在数据中心规模提供资源管理,并能帮助大家用最简便的方式创建处理上千万亿兆级别的分布式应用程序。在本书中,2位Hadoop技术先驱展示了如何开发新的应用,并改编现有代码以完全利用这些革新的进步。

图书特色

在刚刚发布的Apache Hadoop 2.0中,YARN作为一个重要的突破,扩展了Hadoop,使其超越了MapReduce范式。对新版本来说,本书正是非常必要的资源。
—— Raymie Stata,Altiscale 公司CEO

Apache Hadoop正在帮助驱动大数据革命。目前,它的数据处理已被全面变革:Apache Hadoop YARN提供了数据中心规模级的资源管理,以及用更简单的方式来创建PB级数据处理的分布式应用。在本书中,几位Hadoop技术先驱展示了如何在Apache Hadoop YARN中开发新的应用,以及如何修改现有的代码来充分利用这些革命性的进步。
YARN项目的创始人Arun Murthy和项目主管Vinod Kumar Vavilapalli详细阐述了YARN如何提升可扩展性和集群使用率,以及如何使用新的编程模型和服务,并且开辟了Java和批处理之外的新选择。他们将带大家漫步YARN从安装到部署的整个生命周期。
你会找到很多来自作者前沿经验的示例——这些作者最初是雅虎公司中Hadoop的最初开发者和实现者,现在是Hortonworks 的开发者,正是他们在推动这个平台并帮助客户成功使用。

通过阅读本书,你将学到:
YARN的目标、设计、架构与组件——它是如何扩展Apache Hadoop生态系统的
在单节点上探究YARN
YARN集群的管理以及Capacity调度器
运行现有的MapReduce应用
开发大规模集群的YARN应用
探索运行在YARN上的新的开源框架

作者简介
Arun C. Murthy 自从Apache Hadoop启动以来就是一个全职的贡献者,并创立了Apache YARN项目。他作为雅虎Hadoop MapReduce开发团队的架构师和领导者,负责为整个雅虎公司提供MapReduce技术服务。他是Hortonworks公司的创始人和架构师,Hortonworks公司由雅虎Hadoop团队的核心成员组成,加速了Hadoop的发展和普及。
Vinod Kumar Vavilapalli 是Hortonworks公司的首席开发者和Apache Hadoop YARN的项目负责人。他之前参与的项目有Hadoop On Deamand、Hadoop-0.20、Capacity调度器、Hadoop安全性和MapReduce。
Doug Eadline 作为Linux的HPC集群革命的实践者和见证者开始了他的职业生涯,目前在为大数据分析撰写文档。
Joseph Niemiec Hortonworks大数据解决方案工程师,致力于为许多财富1000强公司设计Hadoop解决方案。
Jeff Markham Hortonworks解决方案工程师。此前,他为VMware、Red Hat和IBM开发过分布式数据应用。

审校人员简介
代志远 目前服务于腾讯公司,从事海量数据相关技术工作,之前曾就职于网易、阿里,做过分布式文件系统、分布式计算框架、分布式搜索、分布式数据库、分布式消息中间件等项目。他是最早的Hadoop国内期刊《hadoopor》的创刊者,译著有《HBase权威指南》。

内容简介
本书由YARN的创建和开发团队亲笔撰写,Altiscale的CEO作序鼎力推荐,是使用Hadoop YARN建立分布式、大数据应用的权威指南。书中利用多个实例,详细介绍Hadoop YARN的安装和管理,以帮助用户使用YARN进行应用开发,并在YARN上运行MapReduce和其他框架。
本书共12章,第1章讲述Apache Hadoop YARN产生和发展的历史;第2章讲解在单台机器(工作站、服务器或笔记本电脑)上快速安装Hadoop 2.0;第3章介绍Apache Hadoop YARN资源管理器;第4章简要介绍YARN组件的功能,帮助读者开始深入了解YARN;第5章详细讲解YARN的安装方法,包括一个基于脚本的手动安装,以及使用Apache Ambari基于GUI的安装;第6章讲述对YARN集群的管理,涉及一些基本的YARN管理场景,介绍如何利用Nagios和Ganglia监控集群,论述对JVM的监视,并介绍Ambari的管理界面;第7章深入探究YARN的架构,向读者展示YARN的内部工作原因;第8章深入讨论Capacity调度器;第9章描述基于现有MapReduce的应用程序如何继续工作以及利用YARN的优势;第10章通过创建一个JBoss Application Server集群的过程,讲述如何构建一个YARN应用程序;第11章描述建立在YARN上的典型示例程序Distributed-Shell的使用和内部情况;第12章总结运行在YARN上的新兴开源框架。最后提供6个附录,包括补充内容和代码下载、YARN的安装脚本、YARN管理脚本、Nagios模块、资源及其他信息、HDFS快速参考。

图书前言

Apache Hadoop有着丰富而悠久的历史。它走过了一条漫长的道路,诞生于21世纪头十年的中期——从仅仅是一个利基使用案例(网络搜索)的基础架构组件开始,它现在已经演变成了现代数据中引人注目的部分,并且可以适用于非常广泛的行业。Apache Hadoop赖以成功的因素很多:安置在Apache Software Foundation下的社区;时机(在正确的时间解决了一个重要的问题);Yahoo公司在它的开发、强化以及大规模生产部署中的早期投入;它目前已经被众多生态系统采用的状态。事后看来,它的成功是顺理成章的。
在个人层面上,Vinod和我有幸从一开始就加入了这趟旅行。能够获得对业界有如此广泛影响的机会是很难得的,而更加难能可贵的是:这一切是以开放的方式在社区开发软件的潮流中完成的。社区,使我们能分享我们的成果、促进我们的优秀观点发展,并淘汰掉那些有问题的观点。我们很荣幸能够帮助业界理解、解锁数据的巨大价值。
YARN使Apache Hadoop走进了一个新的时代——其最初的影响已经不再令人新奇,人们对它的期望会更高更多。在Hortonworks公司,我们坚信,世界上至少有一半的数据会被Apache Hadoop触及。在至少五年的时间中,已经显而易见的是,Apache Hadoop已经进化到了支持MapReduce框架及其他方面的地步。随着行业将所有的数据都注入Apache Hadoop HDFS,产生了可以多种方式处理数据的需求:实时事件处理、人机交互的SQL查询、批处理、机器学习以及很多其他的处理方式。Apache Hadoop 1.0受到严重限制,人们虽然可以以多种形式在HDFS中存储数据,但是MapReduce却是可以用于处理本地数据的唯一算法。
YARN正是我们解决Apache Hadoop的多维需求的方式,它将Apache Hadoop核心从一招一式的“批量存储/处理”系统,转换成真正的多用途平台。认识Apache Hadoop MapReduce的关键在于两个方面:1)一个核心的资源管理器,包含了调度、工作负载管理以及容错;2)一个面向用户的MapReduce框架,为终端用户提供了简化的接口,隐藏了处理可扩展分布式系统的复杂性。特别是,MapReduce框架将用户从处理容错、可扩展性和其他问题的细节中释放出来。YARN实现了这一简单想法:在YARN中,我们将MapReduce降级到仅仅是Hadoop中处理数据的一个选择而已,它与Apache Storm(实时事件处理)、Apache Tez(交互式查询支持)和Apache Spark(内存中的机器学习)等很多其他的框架并列。
分布式系统很难,特别是它的失败处理。YARN使程序员能够设计和实现分布式框架,同时共享公共的资源和数据。YARN可以让应用程序开发者专注于他们的业务逻辑,由YARN自动处理如资源仲裁、隔离、集群健康以及故障监控等棘手的问题,但是YARN也需要应用程序对其发出的信号做出它们认为合理的响应。通过处理框架开发者面临的很多问题,YARN大大简化了构建这类系统的工作,与此同时,框架开发人员仍然必须以框架特定的方式处理框架自身的问题。
YARN的能力很容易理解,但是对这种能力的利用还要求用户理解构建一个与YARN结合的系统的复杂性。本书的目的是调和这二者的分歧。
YARN项目和Apache YARN社区已经走过了一段漫长的道路。越来越多的应用程序转移到YARN下面运行,以帮助用户使用各种方式来处理数据。我们希望通过本书中的知识,可以帮助读者催化实施周期,让个人和组织都可以在所选择的应用中充分利用数据革命带来的价值。
本书的重点
本书的目的是展示Apache Hadoop YARN的目标、设计、架构以及它是如何扩展Apache Hadoop生态圈来充分利用大规模数据的,而不仅仅是MapReduce。它主要侧重于YARN集群的安装和管理,帮助用户使用YARN进行应用开发,以及在YARN上运行除了MapReduce之外的新框架。
需要注意的是,本书的目的不是介绍Apache Hadoop本身。我们假设读者已经具有了第1版Hadoop的相关知识,如在Hadoop MapReduce框架上编写过应用程序,以及了解Hadoop Distributed FileSystem的架构和使用。请参阅本书英文版网页(http://yarn-book.com)来获取介绍性的资源列表。在这本书的未来版本中,我们希望扩充与MapReduce应用框架本身相关的材料,以及用户如何设计和编写自己的MapReduce应用程序。
本书的结构
在第1章中,我们提供了Apache Hadoop YARN产生的原因和产生的过程。第2章给出了快速安装指南以及在单个节点上探索Apache Hadoop YARN。第3章引入了YARN,并解释了它是如何扩展Hadoop生态系统的。第4章中对YARN组件的功能概述让读者开始深入了解YARN。
第5章描述了YARN的安装方法。其中包括一个基于脚本的手动安装,以及使用Apache Ambari基于GUI的安装。然后,我们在第6章中讲述了对YARN集群的管理。
我们在第7章中深入探究了YARN的架构,向读者展示了YARN的内部工作原理。紧接着,我们在第8章中深入讨论Capacity调度器。
第9章描述了基于现有MapReduce的应用程序如何继续工作以及利用YARN的优势。第10章通过创建一个JBoss Application Server集群的过程,讲述了如何构建一个YARN应用程序。第11章描述了建立在YARN上的典型示例程序distributed shell的使用和内部情况。
YARN中最令人兴奋的能力是支持多种编程模型及应用框架。我们在第12章中总结了运行在YARN上的新兴开源框架。
本书最后面是6个附录,附录A~F。
排版约定
由于代码太长而不适合在本书中的一行上展示时,使用如下符号作为代码换行符:。
更多内容和附带代码
请参阅附录A,本书网页是http://yarn-book.com。本书中使用的所有代码和配置文件都可以从该网站下载。从该网站上的“Description of Apache Hadoop YARN Configuration”和“Apache Hadoop YARN Trouble shooting Tips”中,可以获取最新的以及更新的内容。
致谢
非常感谢在本书写作过程中下列人士给予的反馈和宝贵援助。
Ron Lee,Hortonworks公司平台架构工程师,没有他的参与,这本书到现在也不会付梓。
Jian He,Apache Hadoop YARN Committer,Hortonworks工程师团队的一员,帮助审阅。
Zhijie Shen,Apache Hadoop YARN Committer,Hortonworks工程师团队的一员,帮助审阅。
Omkar Vinit Joshi,Apache Hadoop YARN Committer,对一些章节有非常透彻的评论。
Xuan Gong,Hortonworks工程师团队的一员,帮助审阅。
Christopher Gambino,作为目标受众测试。
Hortonworks的David Hoyle,负责阅读草稿。
Ellis H. Wilson III,宾夕法尼亚州立大学计算机科学与工程学院存储专家,负责了整本书草稿的审阅。
Arun C. Murthy的致谢
Apache Hadoop是Apache软件基金会(ASF)的社区成果的产物。ASF的准则是“代码的社区”,基于社区持续成功的事实,它已远远不只是成功的项目或代码库。Apache Hadoop是一个闪光的例子。自成立以来,数以百计的人都贡献自己的时间、兴趣和专长——许多人仍在继续,也有人一些离开,不变的是社区。我想借此机会感谢每一位贡献者,如果没有你们的贡献,Hadoop不会是现在这样。贡献不仅仅是代码,也包括bug报告,用户邮件列表上帮助journeywoman 查询的邮件,Hadoop wiki的编辑,等等。
非常感谢每一个一开始就支持Apache Hadoop的Yahoo工程师——大家都很清楚,对于每一个知道项目历史和背景的人,真的没有必要一直强调。
Apache Hadoop YARN开始于一个单纯的想法。想法是丰富和短暂的,价值是存疑的。如果没有数百位贡献者无数个小时的努力,YARN不会成为现实。如果不是初始团队相信这个想法,去伪存真,倾力承担,YARN不会成为现实。谢谢你们,你们知道是谁。
特别感谢推进这本书产生的Hortonworks公司的幕后团队,像Ron和Jim是这些成就的关键架构师。也谢谢我的合著者:Vinod、Joe、Doug和Jeff,你们是一群杰出的人。尤其是Vinod,这个世界应该给予他更多关注——从很多方面来说他都是一个非常特别的年轻人。
我生活中的所有一切都来自家庭的支持、忍耐和爱。妈妈、爷爷、奶奶、Manasa——我最好的朋友和不可思议的妻子,还有时刻在我眼中的三岁孩子——Arjun。谢谢你们。特别是感谢我的爷爷,我所认识的最好的人,也是我的榜样,现在我非常想念您。
最后,老生常谈,非常感谢这本书的读者。非常感谢你用在阅读这本书和学习Apache Hadoop YARN上的时间。请不吝指教我们如何改进来节省你的时间。
Vinod Kumar Vavilapalli的致谢
Apache Hadoop YARN,从更大的层面上说,Apache Hadoop本身,一直是一个健康的、社区驱动的开源项目。它的成功在很大程度上归功于Apache Hadoop YARN和MapReduce社区。许多个人和组织花费了大量的时间来开发、测试、部署、管理、支持、写文档和宣传,最重要的是,使用Apache Hadoop YARN多年。非常感谢所有的志愿贡献者、用户、测试人员、Committer和帮助YARN以每一个可能的方式进步的PMC成员。如果没有他们,YARN就不会有今天的成绩,更不用说这本书的完成。我参与这个项目完全是偶然的,感谢幸运之神赐予我这样一个令人难以置信的机会。
如果不是Rone Lee在这本书的每一个阶段督促我和其他合著者,这本书不可能完成。感谢Jeff Markham让这本书有了开始,并编写可用非传统YARN应用程序展示YARN的能力,使它作为构建工作的指导。感谢Doug Eadline执著地推进本书内容的及时更新和发布。感谢Joseph Niemiec,虽然较迟加入本书写作,但有显著的贡献。
特别感谢我的导师Hemanth Yamijala,当我的职业生涯刚刚开始时,他耐心地帮助我,给予我非常大的指导。感谢我的合著者、导师、团队领导和朋友Arun C. Murthy,带领我一起开发Hadoop。感谢我的美丽出色的妻子Bhavana所有的爱与支持,在我写这本书时我无暇他顾,感谢她对我的耐心。最后,感谢我的父母,是他们把我带到这个美丽的世界,并给了我这样一个美好的生活。
Doug Eadline的致谢
幕后很多人的努力才使本书的完成成为可能。首先,我要感谢Hortonworks的Ron Lee:如果没有你的指引,这本书定将会驶入波涛汹涌的大海。此外,感谢Hortonworks的Joe Niemiec的所有帮助以及在最后时刻的努力。Addison-Wesley出版社的Debra Williams Cauley:你是一个很好的朋友,使这次航行更加容易。感谢其他作者,特别是Vinod,帮助我了解YARN背后的大大小小的想法。我也不能忘记我的支持组成员Emily、Marlee、Carla和Taylor,当我不顺时,谢谢你们提醒我。最后,对我的好妻子Maddy的支持致以最衷心的感谢。是的,它真的完成了。
Joseph Niemiec的致谢
非常感谢我的父亲Jeffery Niemiec,如果没有他,我不可能对计算机产生热情。
Jeff Markham的致谢
从我2012年在Hortonworks第一次介绍YARN到现在,我已经认识到:正是由于Arun Murthy和Vinod Vavilapalli领导的开源社区的努力,世界各地的组织才有机会使用这个改变游戏规则的软件。引领世界一流的Hortonworks工程师以及企业和个人贡献者是件非常困难的事情,需要很高的视野。如果没有这一切,就不会有YARN。感谢你们两位领导了一个真正伟大的项目。特别感谢Ron Lee在日常工作之外对我们进行的全程指导。最重要的是,我亏欠我的妻子Yong很多,是她在我为这个项目工作时,为我们搬迁到首尔做了很多繁重的工作。

上架指导

计算机

封底文字

“在刚刚发布的Apache Hadoop 2.0中,YARN作为一个重要的突破,扩展了Hadoop,使其超越了MapReduce范式。对新版本来说,本书正是非常必要的资源。”
——Raymie Stata,Altiscale 公司CEO


Apache Hadoop正在帮助驱动大数据革命。目前,它的数据处理已被全面变革:Apache Hadoop YARN提供了数据中心规模级的资源管理,以及用更简单的方式来创建PB级数据处理的分布式应用。在本书中,几位Hadoop技术先驱展示了如何在Apache Hadoop YARN中开发新的应用,以及如何修改现有的代码来充分利用这些革命性的进步。

YARN项目的创始人Arun Murthy和项目主管Vinod Kumar Vavilapalli详细阐述了YARN如何提升可扩展性和集群使用率,以及使用新的编程模型和服务,并且开辟了Java和批处理之外的新选择。他们将带大家漫步YARN从安装到部署的整个生命周期。

你会找到很多来自作者前沿经验的示例——这些作者最初是雅虎公司中Hadoop的最初开发者和实现者,现在是Hortonworks 的开发者,正是他们在推动这个平台并帮助客户成功使用。

通过阅读本书,你将学到:
• YARN的目标、设计、架构与组件——它是如何扩展Apache Hadoop生态系统的
• 在单节点上探究YARN
• YARN集群的管理以及容量调度器
• 运行现有的MapReduce应用
• 开发大规模集群的YARN应用
• 探索运行在YARN上的新的开源框架

作者简介

(美)Arun C. Murthy, Vinod Kumar Vavilapalli, Doug Eadline, Joseph Niemiec, Jeff Markham 著:暂无简介

译者简介

罗韩梅 洪志国 杨旭 余意 龚军 译:暂无简介

译者序

随着大数据时代的到来,计算平台的规模效应愈加突显。现今的计算任务具有总量规模大、同时并发高等特点,集群操作系统的高效调度器为大数据应用提供了可靠支撑。除了计算型任务之外,互联网公司的服务种类越来越多,业务规模越来越大,开发运维环境也越来越复杂,因而集群操作系统引起了很多大型和中型公司的关注。集群操作系统在节省成本、提升可用性、简化运维等方面都意义重大,各主流公司,如Google、Facebook和Twitter以及国内的腾讯、百度和阿里等公司都对其投入了大量研究。
Apache Hadoop已经成为大数据的标签之一,在很多领域都得到了广泛的应用。如今,Hadoop Yarn使Hadoop走进了一个新的时代,成为一个通用的集群操作系统,越来越多的计算框架都迁移到Yarn上来,MR on Yarn,Storm on Yarn,Hbase on Yarn,Spark on Yarn,等等,这些系统借助于Yarn,获得了更好的资源调度、资源隔离、弹性伸缩,以及容灾容错等特性。而Yarn在架构上的优化也大大提升了Hadoop系统的可扩展性和集群的利用率。
本书的作者Arun是Hortonworks的共同创始人,从2006年Hadoop创建时开始就一直在为Hadoop工作,其他作者也都是Hortonworks公司专门负责创建和开发YARN的团队成员,是业内的领军人物。本书全面介绍了Yarn的历史背景、安装使用、工作原理,以及作者的设计理念,是Apache Hadoop 2.0不可或缺的学习资源。
参加本书翻译工作的有罗韩梅、洪志国、余意、龚军、杨旭,均来自腾讯数据平台部数据中心资源调度团队,负责腾讯的集群操作系统Gaia(盖娅)。代志远负责本书的技术审校工作。
由于书中概念和术语较多,有一些目前尚无固定中文译法,加上译者水平有限,译文中的不当之处在所难免,我们真诚地希望同行和读者们不吝赐教。

推荐序

推荐序一?Foreword One
威廉·吉布森喜欢说:“未来就在这里,只是尚未流行。”我们这些网页搜索领域的人有幸(也是注定的)生活在大数据的未来,只是现在它还完全没有流行。我们从中学到了什么?我们学会了量化一切;我们学会了试验;我们学会了从非结构化的数据中挖掘信号;我们学会了从数据科学获取商业价值;我们还学会了,要做以上这些,必须拥有新的数据处理平台,而这个平台跟当时的商业智能系统是完全不同的。
大数据的未来正在迅速触及各行各业。一部分是被现实世界的广泛数字化所驱动——汽车、建筑,甚至人类,都在不断产生数据流,类似我们在网络世界所了解和喜爱的Web日志。虽然不太明显,但各种数字记录,比如数字化的政府记录、保险单、医疗记录,与搜索引擎爬取和分析的网页一样,也在产生大量信息。正因为这样我们也不会觉得惊奇:首先用于网页搜索的工具和技术,正被用在越来越多的行业中来获取收益。当然,这类工具的领先者,就是Apache Hadoop。
但是Hadoop已经有接近10年历史了。在此期间,计算机基础设施已经有了显著的进步。如果Hadoop要保持在现代大数据领域的地位,也需要同样进步。YARN代表了保持Hadoop地位所需的进步。
正如本书中的历史回顾所述,大多数Hadoop部署都支持单一的计算范式:MapReduce。在当时的服务器上,水平扩展(为一个问题投入更多服务器节点)是网页搜索行业唯一可以指望跟上网页增长的方法。MapReduce范式很适合水平扩展,所以人们继续投资。
有了更快的网络、更多的CPU核数、固态存储以及(尤其是)更大的内存,并行计算的新范式在更大的规模上变得可行。YARN允许Hadoop用户使用除MapReduce之外的范式。MapReduce并不会消失——它适合解决很多问题,并且比任何当前开发的其他系统扩展性更好。但是,MapReduce将逐渐成为更大的工具箱中的一个工具,这个工具箱就是YARN。
简单来说,大数据的时代才刚开始。感谢YARN,Hadoop将继续在各行各业的大数据处理中扮演关键角色。鉴于此,我很高兴获悉YARN项目创始人Arun Murthy、项目领导Vinod Kumar Vavilapalli与Doug Eadline、Joseph Niemiec和Jeff Markham联合起来写一本书,在这本书中分享YARN项目的历史和初衷,描述如何部署和操作YARN,并提供如何在应用程序层面获取有价值的指南。
在刚刚发布的Apache Hadoop 2.0中,YARN作为一个重要的突破,扩展了Hadoop,使其超越了MapReduce范式。对新版本来说,本书正是非常必要的资源。

——Raymie Stata,Altiscale的CEO



推荐序二?Foreword Two
关于数据和数据分析的系列丛书,若是不包括Hadoop和Hadoop生态系统的各部分的内容,那这套书就是不完整的。Hadoop 2引入了YARN(Yet Another Resource Negotiator),体
现了Hadoop数据处理的内部工作机制的巨大变革。有了YARN,Hadoop超越了MapReduce范式,展现了一个构建大规模数据处理应用程序的框架。MapReduce成为实现在YARN框架之上的一个应用程序。这本书提供了YARN如何工作的细节,阐述了如何在MapReduce之外利用YARN的优势来处理大规模数据。
没有人比本书的作者更有资格来做这件事。这些作者就是Hortonworks公司专门负责创建和开发YARN的团队。Hortonworks的共同创始人Arun,从2006年Hadoop创建时就一直为Hadoop工作。Vinod从2007年中期就开始全职贡献于Apache Hadoop项目。Jeff和Joseph是Hortonworks的解决方案工程师。Doug是广受欢迎的Hadoop基础在线课程的培训师,具有多年构建Hadoop和集群系统的经验。这些作者一起为大家带来丰富的、独家的有关Hadoop和YARN的知识与经验。
本书阐述了Hadoop和MapReduce的简史,以及为什么YARN是平台演进中必要的下一步。带你体验安装和管理,然后进入YARN的内部细节和Capacity调度器。你会看到现有的MapReduce应用程序如何作为一个应用程序框架运行于YARN之上。最后,你将学习如何实现自己的YARN应用程序,并了解一些新的基于YARN的框架。本书将带你深入理解下一代Hadoop平台。

——Paul Dix,丛书编辑

图书目录

译者序
推荐序一
推荐序二
前 言
第1章 Apache Hadoop YARN:简明历史及基本原理 1
1.1 引言 1
1.2 Apache Hadoop 2
1.3 阶段0:Ad Hoc集群时期 3
1.4 阶段1:Hadoop on Demand 3
1.4.1 HOD世界中的HDFS 5
1.4.2 HOD的特色及优势 5
1.4.3 HOD的缺点 6
1.5 阶段2:共享计算集群的黎明 8
1.5.1 共享集群的演进 8
1.5.2 使用共享MapReduce集群的问题 13
1.6 阶段3:YARN的出现 15
1.7 小结 16
第2章 Apache Hadoop YARN安装快速入门 17
2.1 准备开始 18
2.2 配置单节点YARN集群的步骤 18
2.2.1 第1步:下载Apache Hadoop 18
2.2.2 第2步:设置JAVA_HOME 19
2.2.3 第3步:创建用户和用户组 19
2.2.4 第4步:创建数据和日志目录 19
2.2.5 第5步:配置core-site.xml 19
2.2.6 第6步:配置hdfs-site.xml 20
2.2.7 第7步:配置mapred-site.xml 21
2.2.8 第8步:配置yarn-site.xml 21
2.2.9 第9步:调整Java堆大小 21
2.2.10 第10步:格式化HDFS 22
2.2.11 第11步:启动HDFS服务 22
2.2.12 第12步:启动YARN服务 23
2.2.13 第13步:通过Web接口验证正在运行的服务 24
2.3 运行MapReduce示例程序 25
2.4 小结 26
第3章 Apache Hadoop YARN的核心概念 27
3.1 不只是MapReduce 27
3.2 Apache Hadoop MapReduce 29
3.2.1 支持非MapReduce应用的需求 30
3.2.2 解决可扩展性 30
3.2.3 提高资源使用率 30
3.2.4 用户敏捷性 30
3.3 Apache Hadoop YARN 31
3.4 YARN组件 32
3.4.1 ResourceManager 32
3.4.2 ApplicationMaster 32
3.4.3 资源模型 33
3.4.4 ResourceRequest和Container 33
3.4.5 Container规范 34
3.5 小结 34
第4章 YARN组件的功能概述 35
4.1 体系架构概述 35
4.2 ResourceManager 37
4.3 YARN调度组件 38
4.3.1 FIFO调度器 38
4.3.2 Capacity调度器 38
4.3.3 Fair调度器 39
4.4 Container 40
4.5 NodeManager 40
4.6 ApplicationMaster 41
4.7 YARN资源模型 41
4.7.1 客户端资源请求 42
4.7.2 ApplicationMaster Container的分配 42
4.7.3 ApplicationMaster与Container管理器的通信 44
4.8 管理应用程序的依赖文件 44
4.8.1 LocalResource的定义 44
4.8.2 LocalResource时间戳 45
4.8.3 LocalResource类型 46
4.8.4 LocalResource的可见性 46
4.8.5 LocalResource的生命周期 47
4.9 小结 47
第5章 安装Apache Hadoop YARN 49
5.1 基础知识 49
5.2 系统准备 50
5.2.1 第1步:安装EPEL和pdsh 50
5.2.2 第2步:生成和分发ssh密钥 51
5.3 基于脚本安装Hadoop 2 51
5.3.1 JDK选项 52
5.3.2 第1步:下载并解压脚本 52
5.3.3 第2步:设置脚本里的变量 52
5.3.4 第3步:提供节点名字 53
5.3.5 第4步:运行脚本 54
5.3.6 第5步:验证安装 54
5.4 基于脚本的卸载 57
5.5 配置文件处理 57
5.6 配置文件设置 57
5.6.1 core-site.xml 57
5.6.2 hdfs-site.xml 58
5.6.3 mapred-site.xml 58
5.6.4 yarn-site.xml 59
5.7 启动脚本 59
5.8 用Apache Ambari安装Hadoop 60
5.8.1 基于Ambari安装Hadoop 61
5.8.2 第1步:检查要求 61
5.8.3 第2步:安装Ambari服务器 62
5.8.4 第3步:安装和启动Ambari代理 62
5.8.5 第4步:启动Ambari服务器 62
5.8.6 第5步:安装HDP2.X集群 63
5.9 小结 70
第6章 Apache Hadoop YARN的管理 71
6.1 基于脚本的配置 71
6.2 监控集群健康:Nagios 76
6.2.1 监控基本的Hadoop服务 77
6.2.2 监控JVM 80
6.3 实时监控系统:Ganglia 82
6.4 使用Ambari管理 83
6.5 JVM分析 88
6.6 基本的YARN管理 90
6.6.1 YARN的管理工具 91
6.6.2 增加或关闭YARN节点 92
6.6.3 Capacity调度器的配置 92
6.6.4 YARN的Web代理 92
6.6.5 使用JobHistoryServer 93
6.6.6 更新用户到用户组的映射 93
6.6.7 更新超级用户代理群组映射 93
6.6.8 更新ResourceManager管理的ACL 93
6.6.9 重新加载服务级授权策略文件 94
6.6.10 管理YARN作业 94
6.6.11 设置Container的内存 94
6.6.12 设置Container核数 94
6.6.13 设置MapReduce配置项 95
6.6.14 用户日志管理 95
6.7 小结 97
第7章 Apache Hadoop YARN的架构指南 98
7.1 概述 98
7.2 ResourceManager 99
7.2.1 ResourceManager组件概述 100
7.2.2 客户端和ResourceManager交互 100
7.2.3 应用程序和ResourceManager的通信 102
7.2.4 节点和ResourceManager的通信 103
7.2.5 ResourceManager核心组件 104
7.2.6 ResourceManager安全相关的组件 105
7.3 NodeManager 109
7.3.1 NodeManager各组件概述 109
7.3.2 NodeManager组件 110
7.3.3 NodeManager安全组件 116
7.3.4 NodeManager的重要功能 116
7.4 ApplicationMaster 117
7.4.1 概述 117
7.4.2 活跃 119
7.4.3 资源需求 119
7.4.4 调度 120
7.4.5 调度协议和本地性 121
7.4.6 启动Container 123
7.4.7 完成的Container 124
7.4.8 ApplicationMaster失败和恢复 124
7.4.9 协调和输出提交 124
7.4.10 为客户端提供信息 125
7.4.11 安全 125
7.4.12 ApplicationMaster退出时进行清理 125
7.5 YARN Container 125
7.5.1 Container运行环境 126
7.5.2 与ApplicationMaster通信 127
7.6 应用程序开发者的摘要 127
7.7 小结 128
第8章 YARN中的Capacity调度器 129
8.1 Capacity调度器介绍 129
8.1.1 多租户弹性 130
8.1.2 安全 130
8.1.3 资源感知 130
8.1.4 细粒度调度 130
8.1.5 本地化 131
8.1.6 调度策略 131
8.2 Capacity调度器配置 131
8.3 队列 132
8.4 层级队列 132
8.4.1 关键特性 132
8.4.2 队列间的调度 132
8.4.3 定义层级队列 133
8.5 队列访问控制 134
8.6 层级队列Capacity管理 135
8.7 用户级别限制 137
8.8 预订 139
8.9 队列的状态 140
8.10 应用程序的限制 141
8.11 用户接口 141
8.12 小结 142
第9章 Apache Hadoop YARN下的MapReduce 143
9.1 运行Hadoop YARN MapReduce实例 143
9.1.1 可利用的实例列表 143
9.1.2 运行Pi实例 144
9.1.3 使用Web GUI监控实例 146
9.1.4 运行terasort测试 151
9.1.5 运行TestDFSIO基准测试 151
9.2 MapReduce兼容性 152
9.3 MapReduce ApplicationMaster 153
9.3.1 启用ApplicationMaster的重启 153
9.3.2 启用已完成任务的恢复 153
9.3.3 JobHistory服务 153
9.4 计算一个节点的容量 154
9.5 Shuffle服务的变动 155
9.6 运行已有的第1版Hadoop的应用程序 155
9.6.1 org.apache.hadoop.mapred API的二进制兼容性 155
9.6.2 org.apache.hadoop.mapreduce API的源码兼容性 155
9.6.3 命令行脚本的兼容性 156
9.6.4 MRv1和早期MRv2(0.23.x)应用程序兼容性的权衡 156
9.7 运行第1版MapReduce现有的代码 157
9.7.1 在YARN上运行Apache Pig脚本 157
9.7.2 在YARN上运行Apache Hive查询 157
9.7.3 在YARN上运行Apache Oozie工作流 157
9.8 高级特性 158
9.8.1 Uber作业 158
9.8.2 可插拔的Shuffle和Sort 158
9.9 小结 159
第10章 Apache Hadoop YARN应用程序范例 160
10.1 YARN客户端 161
10.2 ApplicationMaster 175
10.3 小结 192
第11章 使用Apache Hadoop YARN Distributed-Shell 193
11.1 使用YARN Distributed-Shell 193
11.1.1 简单例子 194
11.1.2 使用更多Container 195
11.1.3 带有shell命令参数的Distributed-Shell 195
11.2 Distributed-Shell内部实现 197
11.2.1 应用的常量定义 198
11.2.2 Client 198
11.2.3 ApplicationMaster 201
11.2.4 普通Container 205
11.3 小结 205
第12章 Apache Hadoop YARN框架 206
12.1 Distributed-Shell 206
12.2 Hadoop MapReduce 206
12.3 Apache Tez 207
12.4 Apache Giraph 207
12.5 Hoya:HBase on YARN 208
12.6 Dryad on YARN 208
12.7 Apache Spark 208
12.8 Apache Storm 209
12.9 REEF:Retainable Evaluator Execution Framework 209
12.10 Hamster:Hadoop and MPI on the Same Cluster 210
12.11 小结 210
附录A 补充内容和代码下载 211
附录B YARN的安装脚本 212
附录C YARN的管理脚本 224
附录D Nagios模块 229
附录E 资源及附加资料 235
附录F HDFS快速参考 237

教学资源推荐
作者: (美)Gregory F. Lawler 著
作者: 郑阿奇 主编 丁有和 刘毅 编著
作者: 滕玮 钱萍 刘镇 主编
参考读物推荐
作者: 周明涛
作者: Lowery,J.W
作者: 武新华 王英英 安向东 等 编著