首页>参考读物>计算机科学与技术>软件与程序设计

Hadoop技术内幕:深入解析YARN架构设计与实现原理
作者 : 董西成 著
丛书名 : 大数据技术丛书
出版日期 : 2013-11-21
ISBN : 978-7-111-44534-0
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 392
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是“Hadoop技术内幕”系列的第3本书,前面两本分别对Common、HDFS和MapReduce进行了深入分析和讲解,赢得了极好的口碑,Hadoop领域几乎人手一册,本书则对YARN展开了深入的探讨,是全球首部关于YARN的专著。仍然由资深Hadoop技术专家董西成执笔,根据最新的Hadoop 2.0版本撰写,权威社区HadoopChina鼎力推荐。
本书从应用角度系统讲解了YARN的基本库和组件用法、应用程序设计方法、YARN上流行的各种计算框架(MapReduce、Tez、Storm、Spark),以及多个类YARN的开源资源管理系统(Corona和Mesos);从源代码角度深入分析YARN的设计理念与基本架构、各个组件的实现原理,以及各种计算框架的实现细节。
全书一共13章,共分为四个部分:第一部分(1-2章)主要介绍了如何获取、阅读和调试Hadoop的源代码,以及YARN的设计思想、基本架构和工作流程;第二部分(3-7章)结合源代码详细剖析和讲解了YARN的第三方开源库、底层通信库、服务库、事件库的基本使用和实现细节,详细讲解了YARN的应用程序设计方法,深入讲解和分析了ResourceManager、资源调度器、NodeManager等组件的实现细节;第三篇(8-10章)则对离线计算框架MapReduce、DAG计算框架Tez、实时计算框架Storm和内存计算框架Spark进行了详细的讲解;第四部分(11-13)首先对Facebook Corona和Apache Mesos进行了深入讲解,然后对YARN的发展趋势进行了展望。附录部分收录了YARN安装指南、YARN配置参数以及Hadoop Shell命令等非常有用的资料。

图书特色

首部Hadoop YARN专著,资深Hadoop技术专家根据最新版本撰写,ChinaHadoop和51CTO等专业技术社区联袂推荐!
从应用角度系统讲解YARN的基本库和组件用法、应用程序设计方法、YARN上流行的各种计算框架,以及多个类YARN的开源资源管理系统。
从源代码角度深入分析YARN的设计理念与基本架构、各个组件的实现原理,以及各种计算框架的实现细节。


大数据的理论和价值逐渐得到了社会各界的认可,各种各样的大数据应用系统应运而生,正在创造性地解决着不同使用场景下的问题。在大数据应用越来越多样化的同时,对提供支撑的基础技术平台提出了更高的要求。Hadoop是目前市场接受程度最高的大数据技术平台之一,在大量有代表性的Hadoop 1.x用户使用体验和反馈的基础上,广受关注的Hadoop 2.x版本在平台设计层面做出了重大改进,已于2013年10月正式发布。
YARN是Hadoop 2.x的核心部分。它作为新一代的资源管理系统,不仅支持MapReduce计算框架,还可以支持流式计算框架、图计算框架、内存迭代计算框架等,极大地扩展了Hadoop的使用场景,提高了Hadoop集群的利用效率。董西成先生理论功底深厚,实践经验丰富,本书可以帮助大家快速了解和学习YARN。
—— 谢磊 北京小象科技有限公司执行董事/ChinaHadoop技术社区负责人

由于MapReduce 1.0(MRv1)版本在扩展性、可靠性、资源利用率和多框架支持等方面存在明显不足,Apache开始尝试对MapReduce进行升级改造,于是MRv2诞生了。由于MRv2将资源管理模块构建成了一个独立的通用系统YARN,这使得MRv2的核心从单一计算框架MapReduce转移为通用资源管理系统YARN。YARN是一个通用资源管理系统,能让各类计算框架运行在一个集群中,并为它们提供统一的资源管理和调度,进而带来易于运维、计算资源弹性可伸缩和数据可共享等众多好处。本书从应用和原理两个角度出发,对YARN及其相关技术进行了深入的讲解和分析,Hadoop应用开发工程师、Hadoop运维工程师、Hadoop的二次开发人员都能从本书中找到自己需要的内容。当然,开源软件的爱好者们也都能从本书中获益,他们不仅能学习到相对优化的源代码阅读方法,还能欣赏到YARN在软件设计与实现上的美丽风景。


作者简介
董西成 资深Hadoop技术实践者和研究者,对Hadoop技术有非常深刻的认识和理解,有着丰富的实践经验。曾经参与了商用Hadoop原型的研发,以及人民搜索的分布式日志系统、全网图片搜索引擎、Hadoop调度器等多个项目的设计与研发,实践经验非常丰富。对Hadoop的源代码有深入的研究,能通过修改Hadoop的源代码来完成二次开发和解决各种复杂的问题。热衷于分享,撰写了大量关于Hadoop的技术文章并分享在自己的博客上,由于文章技术含量高,所以非常受欢迎,这使得他在Hadoop技术圈内颇具知名度和影响力。
出版有Hadoop领域负有盛名的专著:《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》。

个人博客:
http://dongxicheng.org/(大量关于Hadoop的“干货”分享)
微信公众账号:
hadoop123(大量关于Hadoop最新资讯和“干货”分享)
微博:
http://weibo.com/clseer(与作者进行技术交流与互动)
如果想了解更多关于本书的内容,可访问http://hadoop123.com/

图书前言

为什么要写这本书
  在互联网巨头的带动下,开源软件Hadoop的应用变得越来越广泛,目前互联网、金融、银行、零售等行业均在使用或者尝试使用Hadoop。IDC对未来几年中国的预测中就专门提到了大数据,其认为未来几年,会有越来越多的企业级用户试水大数据平台和应用,而这之中,Hadoop将成为最耀眼的“明星”。
  尽管Hadoop整个生态系统是开源的,但由于它包含的软件种类过多,且版本升级过快,大部分公司,尤其是一些中小型公司,难以在有限的时间内快速掌握Hadoop蕴含的价值。此外,Hadoop自身版本的多样化也给很多研发人员带来了很大的学习负担,尽管当前市面上已有很多参考书籍,但遗憾的是,能够深入剖析Hadoop内部实现细节的书籍少之又少,而本书则尝试弥补这一缺憾。本书是笔者继《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》之后的又一本剖析Hadoop内幕的书籍。
  本书介绍的YARN(Yet Another Resource Negotiator)系统是Hadoop 2.0新增加的一个子项目(与Common、MapReduce和HDFS三个分支并列),它的引入使得分布式计算系统进入平台化时代,即各种计算框架可以运行在一个集群中,由资源管理系统进行统一管理和调度,它们共享整个集群中的资源进而提高资源利用率。
  本书以Hadoop 2.0为基础,从基本概念、程序设计和内部实现等方面深入剖析了Hadoop YARN。本书重点分析了YARN的核心实现以及运行在YARN上的计算框架,其中,核心实现包括基础库、编程接口、ResourceManager实现、资源调度器实现、NodeManager实现等,而计算框架则包括离线计算框架MapReduce、DAG计算框架Tez、实时计算框架Storm和内存计算框架Spark等。书中不仅详细介绍了YARN各个组件和计算框架的内部实现原理,而且结合源代码进行了深入剖析,使读者可以快速、全面地学习Hadoop YARN设计原理和实现细节。
读者对象
  (1)Hadoop二次开发人员
  由于在扩展性、容错性和稳定性等方面的诸多优点,Hadoop已被越来越多公司采用,而为了减少开发成本,大部分公司在Hadoop基础上进行二次开发,以打造属于公司内部的Hadoop平台。对于这部分Hadoop二次开发人员,深入而又全面地了解Hadoop的设计与实现细节是修改Hadoop内核的前提,而本书可帮助这部分读者快速而又全面地了解Hadoop实现细节。
  (2)Hadoop应用开发人员
  如果要利用Hadoop进行高级应用开发,仅掌握Hadoop基本使用方法是远远不够的,必须对Hadoop框架的设计原理、架构和运作机制有一定的了解。对这部分读者而言,本书将带领他们全面了解Hadoop的设计和实现,加深对Hadoop框架的理解,提高开发水平,从而编写出更加高效的应用程序。
  (3)Hadoop运维工程师
  对于一名合格的Hadoop运维工程师而言,适当地了解Hadoop框架的设计原理、架构和运作机制是十分有帮助的,这不仅可以更快地排除各种可能的Hadoop故障,也能够让Hadoop运维人员与研发人员进行更有效地沟通。通过阅读本书,Hadoop运维人员可以了解到很多从其他书中无法获取的Hadoop实现细节。
  (4)开源软件爱好者
  Hadoop是开源软件中的佼佼者,它在实现的过程中吸收了很多开源领域的优秀思想,同时也有很多值得学习的创新。尤为值得一提的是,本书分析Hadoop设计和实现的方式也许值得所有开源软件爱好者进行学习和借鉴。通过阅读本书,这部分读者不仅能领略到开源软件的优秀思想,还可以掌握分析开源软件源代码的方法和技巧,从而进一步提高使用开源软件的效率和质量。
如何阅读本书
  本书分为四大部分(不包括附录):
  第一部分为基础篇(第1~2章),简单地介绍Hadoop YARN的环境搭建和基本设计架构,帮助读者了解一些基础背景知识。
  第二部分为YARN核心设计篇(第3~7章),着重讲解YARN基本库、应用程序设计方法和运行时环境的实现,包括ResourceManager、NodeManager和资源调度器等关键组件的内部实现细节。
  第三部分为计算框架篇(第8~10章),主要讲解当前比较流行的可运行在YARN上的计算框架,包括离线计算框架MapReduce、DAG计算框架Tez、实时计算框架Storm和内存计算框架Spark。
  第四部分为高级篇(第11~13章),主要介绍了几个类似于Hadoop YARN的开源资源管理系统,包括Corona、Mesos等,并总结了资源管理系统的特点及发展趋势。
  另外本书最后还添加了几个附录:附录A为YARN安装指南;附录B介绍了常见的YARN配置参数;附录C介绍了常用的Hadoop Shell命令;附录D为本书的所有参考资料,包括参考论文、Hadoop jira和网络资源等。
  Hadoop YARN是Hadoop 2.0新引入的系统,对于大部分读者而言,该系统存在很多疑惑与未知之处,而本书正是尝试全方位剖析该系统。为了能够系统化地学习YARN,推荐读者从第1章的基础理论知识开始学习。
勘误和支持
  由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者特意创建一个在线支持与应急方案的站点http://hadoop123.com。你可以将书中的错误发布在Bug勘误表页面中,同时如果你遇到任何问题,也可以访问Q&A页面,我将尽量在线上为读者提供最满意的解答。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱dongxicheng@yahoo.com,期待能够得到你们的真挚反馈。
致谢
  感谢我的导师廖华明副研究员,是她引我进入Hadoop世界。
  感谢腾讯的蔡斌老师,正是由于他的推荐,才使得两本Hadoop书的出版成为可能。
  感谢机械工业出版社华章分社的杨福川老师和孙海亮老师在这一年多的时间中始终支持我的写作,他们的鼓励和帮助使我顺利完成了本书。
  感谢何鹏、姜冰、郑伟伟、战科宇、周礼、刘晏辰、王群等人给我提供的各种帮助。
  最后感谢我的父母,感谢他们的养育之恩,感谢兄长的鼓励和支持,感谢他们时时刻刻给我信心和力量!感谢我的女朋友颛悦对我生活的细心照料与琐事上的宽容。
  谨以此书献给我最亲爱的家人,以及众多热爱Hadoop的朋友们!

董西成
于北京

上架指导

计算机\程序设计

封底文字

(封底放ChinaHadoop 的logo,注明“联合策划”字样)
大数据的理论和价值逐渐得到了社会各界的认可,多种多样的大数据应用系统应运而生,正在创造性地解决着不同使用场景下的问题。大数据应用越来越多样化的同时,对于提供支撑的基础技术平台也提出了更高的要求。Hadoop是目前市场接受程度最高的大数据技术平台之一,在大量有代表性的Hadoop 1.X用户使用体验和反馈的基础上,广为关注的Hadoop 2.X版本在平台设计层面做出了重大改进,已于2013年10月份正式发布。
YARN是Hadoop 2.X的核心部分。它作为新一代的资源管理系统,不仅支持MapReduce计算框架,还可以支持流式计算框架、图计算框架、内存迭代计算框架等,极大地扩展了Hadoop的使用场景和提高了Hadoop集群的利用效率。董西成先生理论功底深厚,实践经验丰富,本书可以帮助大家快速了解和学习YARN。
——谢磊 北京小象科技有限公司执行董事/ChinaHadoop技术社区 负责人
由于MapReduce 1.0(MRv1)版本在扩展性、可靠性、资源利用率和多框架等方面存在明显不足,Apache开始尝试对MapReduce进行升级改造,从而诞生了下一代MapReduce计算框架MRv2。由于MRv2将资源管理模块构建成了一个独立的通用系统YARN,这使得MRv2的核心从单一计算框架MapReduce转移为通用资源管理系统YARN。YARN是一个通用资源管理系统,能让各类计算框架运行在一个集群中,并为它们提供统一的资源管理和调度,可带来易于运维、计算资源弹性可伸缩和数据可共享等众多好处。本书从应用和原理两个角度出发,对YARN及其相关技术进行了深入的讲解和分析,Hadoop应用开发工程师、Hadoop运维工程师、Hadoop的二次开发人员都能从本书中找到自己需要的内容。当然,开源软件的爱好者们也都能从本书中获益,不仅能学习到相对优化的源代码阅读方法,也能欣赏到YARN在软件设计与实现上的美丽风景。

作者简介

董西成 著:暂无简介

图书目录

前 言
第一部分 准备篇
第1章 环境准备 2
1.1 准备学习环境 2
1.1.1 基础软件下载 2
1.1.2 如何准备Linux环境 3
1.2 获取Hadoop源代码 5
1.3 搭建Hadoop源代码阅读环境 5
1.3.1 创建Hadoop工程 5
1.3.2 Hadoop源代码阅读技巧 8
1.4 Hadoop源代码组织结构 10
1.5 Hadoop初体验 12
1.5.1 搭建Hadoop环境 12
1.5.2 Hadoop Shell介绍 15
1.6 编译及调试Hadoop源代码 16
1.6.1 编译Hadoop源代码 17
1.6.2 调试Hadoop源代码 18
1.7 小结 20
第2章 YARN设计理念与基本架构 21
2.1 YARN产生背景 21
2.1.1 MRv1的局限性 21
2.1.2 轻量级弹性计算平台 22
2.2 Hadoop基础知识 23
2.2.1 术语解释 23
2.2.2 Hadoop版本变迁 25
2.3 YARN基本设计思想 29
2.3.1 基本框架对比 29
2.3.2 编程模型对比 30
2.4 YARN 基本架构 31
2.4.1 YARN基本组成结构 32
2.4.2 YARN通信协议 34
2.5 YARN工作流程 35
2.6 多角度理解YARN 36
2.6.1 并行编程 36
2.6.2 资源管理系统 36
2.6.3 云计算 37
2.7 本书涉及内容 38
2.8 小结 38
第二部分 YARN核心设计篇
第3章 YARN基础库 40
3.1 概述 40
3.2 第三方开源库 41
3.2.1 Protocol Buffers 41
3.2.2 Apache Avro 43
3.3 底层通信库 46
3.3.1 RPC通信模型 46
3.3.2 Hadoop RPC的特点概述 48
3.3.3 RPC总体架构 48
3.3.4 Hadoop RPC使用方法 49
3.3.5 Hadoop RPC类详解 51
3.3.6 Hadoop RPC参数调优 57
3.3.7 YARN RPC实现 57
3.3.8 YARN RPC应用实例 61
3.4 服务库与事件库 65
3.4.1 服务库 66
3.4.2 事件库 66
3.4.3 YARN服务库和事件库的使用方法 68
3.4.4 事件驱动带来的变化 70
3.5 状态机库 72
3.5.1 YARN状态转换方式 72
3.5.2 状态机类 73
3.5.3 状态机的使用方法 73
3.5.4 状态机可视化 76
3.6 源代码阅读引导 76
3.7 小结 77
3.8 问题讨论 77
第4章 YARN应用程序设计方法 78
4.1 概述 78
4.2 客户端设计 79
4.2.1 客户端编写流程 80
4.2.2 客户端编程库 84
4.3 ApplicationMaster设计 84
4.3.1 ApplicationMaster编写流程 84
4.3.2 ApplicationMaster编程库 92
4.4 YARN 应用程序实例 95
4.4.1 DistributedShell 95
4.4.2 Unmanaged AM 99
4.5 源代码阅读引导 100
4.6 小结 100
4.7 问题讨论 100
第5章 ResourceManager剖析 102
5.1 概述 102
5.1.1 ResourceManager基本职能 102
5.1.2 ResourceManager内部架构 103
5.1.3 ResourceManager事件与事件处理器 106
5.2 用户交互模块 108
5.2.1 ClientRMService 108
5.2.2 AdminService 109
5.3 ApplicationMaster管理 109
5.4 NodeManager管理 112
5.5 Application管理 113
5.6 状态机管理 114
5.6.1 RMApp状态机 115
5.6.2 RMAppAttempt状态机 119
5.6.3 RMContainer状态机 123
5.6.4 RMNode状态机 127
5.7 几个常见行为分析 129
5.7.1 启动ApplicationMaster 129
5.7.2 申请与分配Container 132
5.7.3 杀死Application 134
5.7.4 Container超时 135
5.7.5 ApplicationMaster超时 138
5.7.6 NodeManager超时 138
5.8 安全管理 139
5.8.1 术语介绍 139
5.8.2 Hadoop认证机制 139
5.8.3 Hadoop授权机制 142
5.9 容错机制 144
5.9.1 Hadoop HA基本框架 145
5.9.2 YARN HA实现 148
5.10 源代码阅读引导 149
5.11 小结 151
5.12 问题讨论 152
第6章 资源调度器 153
6.1 资源调度器背景 153
6.2 HOD调度器 154
6.2.1 Torque资源管理器 154
6.2.2 HOD作业调度 155
6.3 YARN资源调度器的基本架构 157
6.3.1 基本架构 157
6.3.2 资源表示模型 160
6.3.3 资源调度模型 161
6.3.4 资源抢占模型 164
6.4 YARN层级队列管理机制 169
6.4.1 层级队列管理机制 169
6.4.2 队列命名规则 171
6.5 Capacity Scheduler 172
6.5.1 Capacity Scheduler的功能 172
6.5.2 Capacity Scheduler实现 176
6.6 Fair Scheduler 179
6.6.1 Fair Scheduler功能介绍 180
6.6.2 Fair Scheduler实现 182
6.6.3 Fair Scheduler与Capacity Scheduler对比 183
6.7 其他资源调度器介绍 184
6.8 源代码阅读引导 185
6.9 小结 186
6.10 问题讨论 187
第7章 NodeManager剖析 188
7.1 概述 188
7.1.1 NodeManager基本职能 188
7.1.2 NodeManager内部架构 190
7.1.3 NodeManager事件与事件处理器 193
7.2 节点健康状况检测 194
7.2.1 自定义Shell脚本 194
7.2.2 检测磁盘损坏数目 196
7.3 分布式缓存机制 196
7.3.1 资源可见性与分类 198
7.3.2 分布式缓存实现 200
7.4 目录结构管理 203
7.4.1 数据目录管理 203
7.4.2 日志目录管理 203
7.5 状态机管理 206
7.5.1 Application状态机 207
7.5.2 Container状态机 210
7.5.3 LocalizedResource状态机 213
7.6 Container生命周期剖析 214
7.6.1 Container资源本地化 214
7.6.2 Container运行 218
7.6.3 Container资源清理 222
7.7 资源隔离 224
7.7.1 Cgroups介绍 224
7.7.2 内存资源隔离 228
7.7.3 CPU资源隔离 230
7.8 源代码阅读引导 234
7.9 小结 235
7.10 问题讨论 236
第三部分 计算框架篇
第8章 离线计算框架MapReduce 238
8.1 概述 238
8.1.1 基本构成 238
8.1.2 事件与事件处理器 240
8.2 MapReduce客户端 241
8.2.1 ApplicationClientProtocol协议 242
8.2.2 MRClientProtocol协议 243
8.3 MRAppMaster工作流程 243
8.4 MR作业生命周期及相关状态机 246
8.4.1 MR作业生命周期 246
8.4.2 Job状态机 249
8.4.3 Task状态机 253
8.4.4 TaskAttempt状态机 255
8.5 资源申请与再分配 259
8.5.1 资源申请 259
8.5.2 资源再分配 262
8.6 Container启动与释放 263
8.7 推测执行机制 264
8.7.1 算法介绍 265
8.7.2 推测执行相关类 266
8.8 作业恢复 267
8.9 数据处理引擎 269
8.10 历史作业管理器 271
8.11 MRv1与MRv2对比 273
8.11.1 MRv1 On YARN 273
8.11.2 MRv1与MRv2架构比较 274
8.11.3 MRv1与MRv2编程接口兼容性 274
8.12 源代码阅读引导 275
8.13 小结 277
8.14 问题讨论 277
第9章 DAG计算框架Tez 278
9.1 背景 278
9.2 Tez数据处理引擎 281
9.2.1 Tez编程模型 281
9.2.2 Tez数据处理引擎 282
9.3 DAG Master实现 284
9.3.1 DAG编程模型 284
9.3.2 MR到DAG转换 286
9.3.3 DAGAppMaster 288
9.4 优化机制 291
9.4.1 当前YARN框架存在的问题 291
9.4.2 Tez引入的优化技术 292
9.5 Tez应用场景 292
9.6 与其他系统比较 294
9.7 小结 295
第10章 实时/内存计算框架Storm/Spark 296
10.1 Hadoop MapReduce的短板 296
10.2 实时计算框架Storm 296
10.2.1 Storm编程模型 297
10.2.2 Storm基本架构 302
10.2.3 Storm On YARN 304
10.3 内存计算框架Spark 307
10.3.1 Spark编程模型 308
10.3.2 Spark基本架构 312
10.3.3 Spark On YARN 316
10.3.4 Spark/Storm On YARN比较 317
10.4 小结 317
第四部分 高级篇
第11章 Facebook Corona剖析 320
11.1 概述 320
11.1.1 Corona的基本架构 320
11.1.2 Corona的RPC协议与序列化框架 322
11.2 Corona设计特点 323
11.2.1 推式网络通信模型 323
11.2.2 基于Hadoop 0.20版本 324
11.2.3 使用Thrift 324
11.2.4 深度集成Fair Scheduler 324
11.3 工作流程介绍 324
11.3.1 作业提交 325
11.3.2 资源申请与任务启动 326
11.4 主要模块介绍 327
11.4.1 ClusterManager 327
11.4.2 CoronaJobTracker 330
11.4.3 CoronaTaskTracker 333
11.5 小结 335
第12章 Apache Mesos剖析 336
12.1 概述 336
12.2 底层网络通信库 337
12.2.1 libprocess基本架构 338
12.2.2 一个简单示例 338
12.3 Mesos服务 340
12.3.1 SchedulerProcess 341
12.3.2 Mesos Master 342
12.3.3 Mesos Slave 343
12.3.4 ExecutorProcess 343
12.4 Mesos工作流程 344
12.4.1 框架注册过程 344
12.4.2 Framework Executor注册过程 345
12.4.3 资源分配到任务运行过程 345
12.4.4 任务启动过程 347
12.4.5 任务状态更新过程 347
12.5 Mesos资源分配策略 348
12.5.1 Mesos资源分配框架 349
12.5.2 Mesos资源分配算法 349
12.6 Mesos容错机制 350
12.6.1 Mesos Master容错 350
12.6.2 Mesos Slave容错 351
12.7 Mesos应用实例 352
12.7.1 Hadoop On Mesos 352
12.7.2 Storm On Mesos 353
12.8 Mesos与YARN对比 354
12.9 小结 355
第13章 YARN总结与发展趋势 356
13.1 资源管理系统设计动机 356
13.2 资源管理系统架构演化 357
13.2.1 集中式架构 357
13.2.2 双层调度架构 358
13.2.3 共享状态架构 358
13.3 YARN发展趋势 359
13.3.1 YARN自身的完善 359
13.3.2 以YARN为核心的生态系统 361
13.3.3 YARN周边工具的完善 363
13.4 小结 363
附录A YARN安装指南 364
附录B YARN配置参数介绍 367
附录C Hadoop Shell命令介绍 371
附录D 参考资料 374

教学资源推荐
作者: 【美】梁勇(Y.Daniel Liang) 著
作者: [英]克里斯?布里顿(Chris Britton) 著
作者: [美]罗伯特·W. 塞巴斯塔(Robert W. Sebesta) 著
参考读物推荐
作者: [印度] 纳威恩·拓奥普(Naveen Toppo) 海瑞思科什·德万(Hrishikesh Dewan)著
作者: 董文娟 尚小冬 张军 著
作者: 李健 种惠芳 著