Hadoop权威指南(第2版)
Tom White
周敏奇, 王晓玲, 金澈清, 钱卫宁 译
出版时间:2011年06月
Google帝国的基石是什么?MapReduce算法!开源项目Hadoop作为它的一个具体实现,可以轻松用于构建和维护一个可靠性高、伸缩性强的分布式系统。
作者Tom White作为Hadoop的项目负责人,通过自己对Hadoop和Hadoop社区的理解,化繁为简,用浅显易懂的语言介绍了Hadoop能做什么,怎么做才能充分发挥Hadoop的优势,Hadoop能够和哪些开源工具结合使用。这是一本主题丰富、讲解透彻的权威参考书,可帮助程序员了解分析海量数据集的细枝末节,帮助管理员掌握搭建和运行Hadoop集群的具体过程。
经过修订和更新的第2版概述了Hadoop的最新动态,例如Hive、Sqoop和Avro等。书中还提供了案例分析来帮助读者了解如何用Hadoop来解决具体的问题。如果想充分利用数据,从中挖掘出有价值的见解或者观点,毫无疑问,这本书将是您不可或缺的重要参考。

使用Hadoop分布式文件系统(HDFS)来存储大型数据集,然后用MapReduce对这些数据集执行分布式计算
■ Hadoop的数据和I/O构建块(用于压缩、数据完整性、序列化和持久处理)
■ 探究MapReduce应用开发中常见的陷阱和高级特性
■ 设计、构建和管理Hadoop专用集群或在云上运行Hadoop
■ 使用Pig这种高级的查询语言来进行大规模数据处理
■ 使用Hive(Hadoop的数据仓库系统)来分析数据集
■ 使用HBase(Hadoop的数据库)来处理结构化数据和半结构化数据
■ 深入介绍Zookeeper,一个用于构建分布式系统的协作类型工具箱

“有了这本权威指南,读者有机会通过大师的手笔来学习Hadoop——在掌握技术的同时,领略作者的睿智和清晰的文风。”
——Hadoop创始人,Doug Cutting于Cloudera

Tom White从2007年以来,一直担任Apache Hadoop项目负责人。他是Apache软件基金会的成员之一,同时也是Cloudera的
一名工程师。Tom为oreilly.com 、java.net和IBM的developerWorks写过大量文章,并经常在很多行业大会上发表演讲。
  1. 第1章 初识Hadoop
  2. 数据!数据!
  3. 数据存储与分析
  4. 与其他系统相比
  5. 关系型数据库管理系统
  6. 网格计算
  7. 志愿计算
  8. Hadoop发展简史
  9. Apache Hadoop和Hadoop生态圈
  10. 第2章 关于MapReduce
  11. 一个气象数据集
  12. 数据的格式
  13. 使用Unix工具进行数据分析
  14. 使用Hadoop分析数据
  15. map阶段和reduce阶段
  16. Java MapReduce
  17. 横向扩展
  18. 数据流
  19. combiner
  20. 运行分布式的MapReduce作业
  21. Hadoop的Streaming
  22. Ruby版本
  23. Python版本
  24. Hadoop的Pipes
  25. 编译运行
  26. 第3章 Hadoop分布式文件系统
  27. HDFS的设计
  28. HDFS的概念
  29. 数据块
  30. namenode和datanode
  31. 命令行接口
  32. 基本文件系统操作
  33. Hadoop文件系统
  34. 接口
  35. Java接口
  36. 从Hadoop URL中读取数据
  37. 通过FileSystem API读取数据
  38. 写入数据
  39. 目录
  40. 查询文件系统
  41. 删除数据
  42. 数据流
  43. 文件读取剖析
  44. 文件写入剖析
  45. 一致模型
  46. 通过 distcp并行复制
  47. 保持 HDFS 集群的均衡
  48. Hadoop存档
  49. 使用Hadoop存档工具
  50. 不足
  51. 第4章 Hadoop I/O
  52. 数据完整性
  53. HDFS的数据完整性
  54. LocalFileSystem
  55. ChecksumFileSystem
  56. 压缩
  57. codec
  58. 压缩和输入分片
  59. 在MapReduce中使用压缩
  60. 序列化
  61. Writable接口
  62. Writable类
  63. 实现定制的Writable类型
  64. 序列化框架
  65. Avro
  66. 基于文件的数据结构
  67. SequenceFile
  68. MapFile
  69. 第5章 MapReduce应用开发
  70. 配置API
  71. 合并多个源文件
  72. 可变的扩展
  73. 配置开发环境
  74. 配置管理
  75. 辅助类GenericOptionsParser,
  76. Tool和ToolRunner
  77. 编写单元测试
  78. mapper
  79. reducer
  80. 本地运行测试数据
  81. 在本地作业运行器上运行作业
  82. 测试驱动程序
  83. 在集群上运行
  84. 打包
  85. 启动作业
  86. MapReduce的Web界面
  87. 获取结果
  88. 作业调试
  89. 使用远程调试器
  90. 作业调优
  91. 分析任务
  92. MapReduce的工作流
  93. 将问题分解成MapReduce作业
  94. 运行独立的作业
  95. 第6章 MapReduce的工作机制
  96. 剖析MapReduce作业运行机制
  97. 作业的提交
  98. 作业的初始化
  99. 任务的分配
  100. 任务的执行
  101. 进度和状态的更新
  102. 作业的完成
  103. 失败
  104. 任务失败
  105. tasktracker失败
  106. jobtracker失败
  107. 作业的调度
  108. Fair Scheduler
  109. Capacity Scheduler
  110. shuffle和排序
  111. map端
  112. reduce端
  113. 配置的调优
  114. 任务的执行
  115. 推测执行
  116. 任务JVM重用
  117. 跳过坏记录
  118. 任务执行环境
  119. 第7章 MapReduce的类型与格式
  120. MapReduce的类型
  121. 默认的MapReduce作业
  122. 输入格式
  123. 输入分片与记录
  124. 文本输入
  125. 二进制输入
  126. 多种输入
  127. 数据库输入(和输出)
  128. 输出格式
  129. 文本输出
  130. 二进制输出
  131. 多个输出
  132. 延迟输出
  133. 数据库输出
  134. 第8章 MapReduce的特性
  135. 计数器
  136. 内置计数器
  137. 用户定义的Java计数器
  138. 用户定义的Streaming计数器
  139. 排序
  140. 准备
  141. 部分排序
  142. 全排序
  143. 辅助排序
  144. 连接
  145. map端连接
  146. reduce端连接
  147. 边数据分布
  148. 利用JobConf来配置作业
  149. 分布式缓存
  150. MapReduce库类
  151. 第9章 构建Hadoop集群
  152. 集群规范
  153. 网络拓扑
  154. 集群的构建和安装
  155. 安装Java
  156. 创建Hadoop用户
  157. 安装Hadoop
  158. 测试安装
  159. SSH配置
  160. Hadoop配置
  161. 配置管理
  162. 环境设置
  163. Hadoop守护进程的关键属性
  164. Hadoop守护进程的地址和端口
  165. Hadoop的其他属性
  166. 创建用户帐号
  167. 安全性
  168. Kerberos和Hadoop
  169. 委托令牌
  170. 其他安全性改进
  171. 利用基准测试程序测试Hadoop集群
  172. Hadoop基准测试程序
  173. 用户的作业
  174. 云端的Hadoop
  175. Amazon EC2上的Hadoop
  176. 第10章 管理Hadoop
  177. HDFS
  178. 永久性数据结构
  179. 安全模式
  180. 日志审计
  181. 工具
  182. 监控
  183. 日志
  184. 度量
  185. Java管理扩展(JMX)
  186. 维护
  187. 日常管理过程
  188. 委任和解除节点
  189. 升级
  190. 第11章 Pig简介
  191. 安装与运行Pig
  192. 执行类型
  193. 运行Pig程序
  194. Grunt
  195. Pig Latin编辑器
  196. 示例
  197. 生成示例
  198. 与数据库比较
  199. Pig Latin
  200. 结构
  201. 语句
  202. 表达式
  203. 类型
  204. 模式
  205. 函数
  206. 用户自定义函数
  207. 过滤UDF
  208. 计算UDF
  209. 加载UDF
  210. 数据处理操作
  211. 加载和存储数据
  212. 过滤数据
  213. 分组与连接数据
  214. 对数据进行排序
  215. 组合和切分数据
  216. Pig实战
  217. 并行处理
  218. 参数替换
  219. 第12章 Hive简介
  220. 安装Hive
  221. Hive外壳环境
  222. 示例
  223. 运行Hive
  224. 配置Hive
  225. Hive服务
  226. metastore
  227. 和传统数据库进行比较
  228. 读时模式vs.写时模式
  229. 更新、事务和索引
  230. HiveQL
  231. 数据类型
  232. 操作与函数
  233. 托管表和外部表
  234. 分区和桶
  235. 存储格式
  236. 导入数据
  237. 表的修改
  238. 表的丢弃
  239. 查询数据
  240. 排序和聚集
  241. MapReduce脚本
  242. 连接
  243. 子查询
  244. 视图
  245. 用户定义函数
  246. 编写UDF
  247. 编写UDAF
  248. 第13章 HBase
  249. HBase基础
  250. 背景
  251. 概念
  252. 数据模型的“旋风之旅”
  253. 实现
  254. 安装
  255. 测试驱动
  256. 客户端
  257. Java
  258. Avro、REST和Thrift
  259. 示例
  260. 模式
  261. 加载数据
  262. Web查询
  263. HBase和RDBMS的比较
  264. 成功的服务
  265. HBase
  266. 实例:HBase在Streamy.com
  267. 的使用
  268. Praxis
  269. 版本
  270. HDFS
  271. 用户界面
  272. 度量
  273. 模式的设计
  274. 计数器
  275. 批量加载
  276. 第14章 ZooKeeper
  277. 安装和运行ZooKeeper
  278. 示例
  279. ZooKeeper中的组成员关系
  280. 创建组
  281. 加入组
  282. 列出组成员
  283. 删除组
  284. ZooKeeper服务
  285. 数据模型
  286. 操作
  287. 实现
  288. 一致性
  289. 会话
  290. 状态
  291. 使用ZooKeeper来构建应用
  292. 配置服务
  293. 可复原的ZooKeeper应用
  294. 锁服务
  295. 更多分布式数据结构和协议
  296. 生产环境中的ZooKeeper
  297. 可恢复性和性能
  298. 配置
  299. 第15章 开源工具Sqoop
  300. 获取Sqoop
  301. 一个导入的例子
  302. 生成代码
  303. 其他序列化系统
  304. 深入了解数据库导入
  305. 导入控制
  306. 导入和一致性
  307. 直接模式导入
  308. 使用导入的数据
  309. 导入的数据与Hive
  310. 导入大对象
  311. 执行导出
  312. 深入了解导出
  313. 导出与事务
  314. 导出和SequenceFile
  315. 第16章 实例分析
  316. Hadoop 在Last.fm的应用
  317. Last.fm:社会音乐史上的革命
  318. Hadoop在Last.fm中的应用
  319. 用Hadoop产生图表
  320. Track Statistics程序
  321. 总结
  322. Hadoop和Hive在Facebook中的应用
  323. 概要介绍
  324. Hadoop在Facebook的使用
  325. 假想的使用情况
  326. Hive
  327. 存在的问题与未来工作计划
  328. Nutch 搜索引擎
  329. 背景介绍
  330. 数据结构
  331. Nutch系统利用Hadoop进行
  332. 数据处理的精选实例
  333. 总结
  334. Rackspace的日志处理
  335. 简史
  336. 选择Hadoop
  337. 收集和存储
  338. 日志的MapReduce模型
  339. 关于Cascading
  340. 字段、元组和管道
  341. 操作
  342. Tap类、Scheme对象和
  343. Flow对象
  344. Cascading实战
  345. 灵活性
  346. Hadoop和Cascading在
  347. ShareThis的应用
  348. 总结
  349. Apache Hadoop的TB字节
  350. 数量级排序
  351. 使用Pig和Wukong来探索10亿
  352. 数量级边的网络图
  353. 测量社区
  354. 每个人都在和我说话:
  355. Twitter回复关系图
  356. 度(degree)
  357. 对称链接
  358. 社区提取
  359. 附录A 安装Apache Hadoop
  360. 附录B Cloudera’s Distribution
  361. for Hadoop
  362. 附录C 准备NCDC天气数据
  363. 索引
书名:Hadoop权威指南(第2版)
作者:Tom White
译者:周敏奇, 王晓玲, 金澈清, 钱卫宁 译
国内出版社:清华大学出版社
出版时间:2011年06月
书号:978-7-302-25758-5
原版书书名:Hadoop: The Definitive Guide, Second Edition
原版书出版商:O'Reilly Media
Tom White
 
自从 2007 年 2 月以来,Tom White 一直担任 Apache Hadoop 项目负责人。他是 Apache 软件基金会的成员之一。他就职于 Cloudera,该公司提供 Hadoop 产品、服 务、支持和培训服务。在此之前,Tom 是一名独立的 Hadoop 顾问,曾帮助很多公 司搭建、使用和扩展 Hadoop 应用。他曾为 O’Reilly.com,Java.net 和 IBM 的 developerWorks 写过大量文章,并定期在行业大会上发表 Hadoop 主题演讲。Tom 拥有英国剑桥大学数学学士学位和利兹大学科学哲学硕士学位。现在,他和他的家 人居住在旧金山。
 
 
《Hadoop 权威指南》封面上的动物是一头非洲象。非洲象属中的大象是地球上最 大的陆地动物(比其表兄弟亚洲象稍大),可以通过耳朵来辨认它们,它们耳朵的 形状与亚洲大陆的形状相似。雄性大象肩高 12 英尺,体重 12 000 磅,但最重的能 到 15 000 磅,而雌性大象身高 10 英尺,体重 8 000-11 000 磅。甚至小象也非常 大,刚出生时体重就接近 200 磅,身高 3 英尺左右。

非洲象生活在撒哈拉以南的非洲地区。陆地上大部分大象生活在稀树的草原地区和 干燥的林地。在某些地区,大象生活在沙漠地带;而在其他地区,可以在山区看到 大象。

这一物种在它们生活的森林和稀树草原生态系统中扮演着非常重要的角色。许多植 物都依靠通过大象的消化道之后才能够萌芽,据估计,非洲西部近三分之一的树种 均依赖于大象的这种方式进行繁殖。大象食用大量的草本植物会影响植被的结构和 灌木丛火灾的模式。例如,自然条件下,大象食用大量草本植物形成雨林中的空 隙,让阳光投射进去,进而导致大量植物物种的生长。由于大象对许多动植物都有 影响,因而称它们为基础物种,因为它们对其赖以生存的生态系统的长期存在至关 重要。

封面图片来自于 Dover Pictorial Archive。