Maven打包MapReduce作业,设置用户的Java类路径,用MRUnit写测试 等(这些内容都请参见第5章)。第3版还深入介绍了一些特性,第8章介绍 输出committer和分布式缓存,第9章描述任务内存监控。我们还在第4章 新增了如何写MapReduce作业来处理Avro数据的相关介绍,在第5章介绍 如何在Oozie中运行一个简单的MapReduce工作流。 第3章的主题是HDFS,现在新增了对高可用性、联邦HDFS、新的 WebHDFS和HttpFS文件系统的介绍。 对Pig,Hive,Sqoop和ZooKeeper的相关介绍,在第3版中全部进行了相 应的扩展,广泛介绍其最新发行版本中的新特性和变化。 此外,第3版还对第2版进行了彻底的纠错、修订和优化。 本书采用的约定 本书采用以下排版约定。 斜体 用于表明新的术语、URL、电子邮件地址、文件名和文件扩展名。 等宽字体Consolas 用于程序清单,在正文段落中出现的程序元素(如变量或函数名)、数据 库、数据类型、环境变量、语句和关键字也采用这样的字体。 等宽字体Consolas+加粗 用于显示命令或应该由用户键入的其他文本。 等宽字体ConsoLas+斜体 表明这里的文本需要替换为用户提供的值或其他由上下文确定的值。 这个图标表示重要的指示、建议或通用的说明。 这个图标表示警告或需要注意。 xii 前言
示例代码的使用 本书的目的是帮助读者完成工作。通常情况下,可以在你的程序或文档中 使用本书中给出的代码。不必联系我们获得代码使用授权,除非你需要使 用大量的代码。例如,在写程序的时候引用几段代码不需要向我们申请许 可。但以光盘方式销售或重新发行O'Reilly书中的示例的确需要获得许 可。引用本书或引用本书中的示例代码来回答问题也不需要申请许可。但 是,如果要将本书中的大量范例代码加入你的产品文档,则需要申请许可。 我们欣赏引用时注明出处的做法,但不强求。引用通常包括书名、作者、 出版社和ISBN,例如“Hadoop:The Definitive Guide,Third Edition,by Tom White.Copyright 2013 Tom White,978-1-449-31152-0" 如果觉得使用示例代码的情况不属于前面列出的合理使用或许可范围,请 通过电子邮件联系我们,邮箱地址为permissions@oreilly..com。 Safari Books Online Safari Safari Books Online(www,safaribooksonline.com)是一个按需 定制的数字图书馆,以图书和视频的形式提供全球技术领 域和经管领域内知名作者的专业作品。专业技术人员、软件开发人员、网 页设计人员、商务人员和创意专家将Safari Books Online用作自己开展研 究、解决问题、学习和完成资格认证培训的重要来源。 Safari Books Online为组织机构、政府部门和个人提供广泛、灵活的产品组 合和定价方式。在这里,订阅者通过一个可以全文检索的数据库中就能够 访问数千种图书、培训视频和正式出版之前的书稿,这些内容提供商有 O'Reilly Media,Prentice Hall Professional,Addison-Wesley Professional, Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、 John Wiley&Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、 Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、 Jones&Bartlett、Course Technology及其他几十家出版社。欢迎访问Safari Books Online,了解更多详情。 前言 xiii
联系我们 对于本书,如果有任何意见或疑问,请通过以下地址联系出版商: 美国: O'Reilly Media,Inc 1005 Gravenstein Highway North Sebastopol,CA 95472 中国: 北京市西城区西直门南大街2号成铭大厦C座807室(100035) 奥莱利技术咨询(北京)有限公司 本书也有相关的网页,我们在上面列出了勘误表、范例以及其他一些信 息。网址如下: http:/www.oreilly..com/catalog/9781449311520(英文版) http:/www.oreilly..com.cn/book.php?bn=978-7-302-37085-7(中文版) 对本书做出评论或者询问技术问题,请发送E-mail至以下邮箱: bookquestions@oreilly.com 如果希望获得关于本书、会议、资源中心和O'Reilly的更多信息,请访问 以下网址: http://www.oreilly.com http://www.oreilly.com.cn 致谢 在本书写作期间,我仰赖于许多人的帮助,直接的或间接的。感谢Hadoop 社区,我从中学到很多,这样的学习仍将继续。 特别感谢Michael Stack和Jonathan Gray,HBase这一章的内容就是他们写 的。我还要感谢Adrian Woodhead,Marc de Palol,Joydeep Sen Sarma, Ashish Thusoo,Andrzej Biat ecki,Stu Hood,Chris K.Wensel Owen O'Malley,他们为第16章提供了实例学习。 感谢为草稿提出有用建议和改进建议的评审人:Raghu Angadi,Matt Biddulph,Christophe Bisciglia,Ryan Cox,Devaraj Das,Alex Dorman, xiv 前言
Chris Douglas,Alan Gates,Lars George,Patrick Hunt,Aaron Kimball, Peter Krey,Hairong Kuang,Simon Maxen,Olga Natkovich,Benjamin Reed,Konstantin Shvachko,Allen Wittenauer,Matei Zaharia Philip Zeyliger.。Ajay Anand组织本书的评审并使其顺利完成。Philip(“flip”) Komer帮助我获得了NCDC气温数据,使本书示例很有特色。特别感谢 Owen O'Malley和Arun C.Murthy,他们为我清楚解释了MapReduce中 shuffle的复杂过程。当然,如果有任何错误,得归咎于我。 对于第2版,我特别感谢Jeff Bean,Doug Cutting,Glynn Durham,Alan Gates,Jeff Hammerbacher,Alex Kozlov,Ken Krugler,Jimmy Lin,Todd Lipcon,Sarah Sproehnle,Vinithra Varadharajan和Ian Wrigley,感谢他们仔 细审阅本书,并提出宝贵的建议,同时也感谢对本书第1版提出勘误建议 的读者。我也想感谢Aaron Kimball对Sqoop所做的贡献和Philip (“flip”)Kromer对图处理实例分析所做的贡献。 对于第3版,我想感谢Alejandro Abdelnur,Eva Andreasson,Eli Collins, Doug Cutting,Patrick Hunt,Aaron Kimball,Aaron T.Myers,Brock Noland, Arvind Prabhakar,Ahmed Radwan和Tom Wheeler,感谢他们的反馈意见和 建议。Rob Weltman友善地对整本书提出了非常详细的反馈意见,这些意见 和建议使得本书终稿的质量得以更上一层楼。此外,我还要向所有提交第2 版勘误的读者表达最真挚的谢意。 特别感谢Doug Cutting对我的鼓励、支持、友谊以及他为本书所写的 序言。 我还要感谢在本书写作期间以对话和邮件方式进行交流的其他人。 在本书写到一半的时候,我加入了Cloudera,我想感谢我的同事,他们为 我提供了大量的帮助和支持,使我有充足的时间写书,并能及时交稿。 非常感谢我的编辑Mike Loukides及其O'Reilly Media的同事,他们在本书 的准备阶段为我提供了很多帮助。Mik一直为我答疑解惑、审读我的初稿 并帮助我如期完稿。 最后,写作是一项艰巨的任务,如果没有家庭一如既往地支持,我是不可 能完成的。我的妻子Eliane,她不仅操持着整个家庭,还协助我,参与本书 的审稿、编辑和跟进案例学习。还有我的女儿Emilia和Lottie,一直都非 常善解人意,期待我有更多时间好好陪陪她们。 前言 XV
目录 第1章初识Hadoop 1.1数据!数据! 12数据的存储与分析 …3 1.3 相较于其他系统的优势… 1.3.1关系型数据库管理系统 .5 13.2网格计算… …7 1.3.3志愿计算… 9 1.4 Hadoop发展简史.. 10 1.5 Apache Hadoop和Hadoop生态系统 14 1.6 Hadoop的发行版本… 15 1.6.1本书包含的内容 16 1.6.2兼容性… 17 第2章关于MapReduce …19 2.1气象数据集 .19 2.2使用Unix工具来分析数据.. .21 2.3使用Hadoop来分析数据… 23 2.3.lmap和reduce. …23 2.3.2 Java MapReduce............. .24 2.4横向扩展.… .33 2.4.1数据流. .34 2.4.2c0 mbiner函数… 37 2.4.3运行分布式的MapReduce作业 …39 2.5 Hadoop Streaming 40