Hadoop实战

Hadoop实战

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
6.268 评价豆瓣读书
免费试读

作品简介

本书是一本系统且极具实践指导意义的Hadoop工具书和参考书。内容全面,对Hadoop整个技术体系进行了全面的讲解,不仅包括HDFS和MapReduce这两大核心内容,而且还包括Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等与Hadoop相关的子项目的内容。实战性强,为各个知识点精心设计了大量经典的小案例,易于理解,可操作性强。

全书一共18章:第1章全面介绍了Hadoop的概念、优势、项目结构、体系结构,以及它与分布式计算的关系;第2章详细讲解了Hadoop集群的安装和配置,以及常用的日志分析技巧;第3章分析了Hadoop在Yahoo!、eBay、Facebook和百度的应用案例,以及Hadoop平台上海量数据的排序;第4-7章深入地讲解了MapReduce计算模型、MapReduce应用的开发方法、MapReduce的工作机制,同时还列出了多个MapReduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了Hadoop的I/O操作、HDFS的原理与基本操作,以及Hadoop的各种管理操作,如集群的维护等;第12-17章详细而系统地讲解了Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等所有与Hadoop相关的子项目的原理及使用,以及这些子项目与Hadoop的整合使用;第18章以实例的方式讲解了常用Hadoop插件的使用和Hadoop插件的开发。

陆嘉恒,中国人民大学副教授,新加坡国立大学博士,美国加利福尼亚大学尔湾分校(University of California, Irvine) 博士后。专注于云计算及其相关技术的研究,对Hadoop有较深入的研究,积累了丰富的实践经验。对分布式计算和海量数据处理有深刻的认识,主持并完成了多个国家863和自然科学基金项目的研究与实施。2009年入选新世纪优秀人才,2010年入选北京科技新星。主持《云计算概论》课程获教育部-IBM精品课程称号。

作品目录

  1. Hadoop实战
  2. 前言
  3. 第1章 Hadoop简介
  4. 1.1 什么是Hadoop
  5. 1.1.1 Hadoop概述
  6. 1.1.2 Hadoop的历史
  7. 1.1.3 Hadoop的功能与作用
  8. 1.1.4 Hadoop的优势
  9. 1.1.5 Hadoop的应用现状和发展趋势
  10. 1.2 Hadoop项目及其结构
  11. 1.3 Hadoop的体系结构
  12. 1.3.1 HDFS的体系结构
  13. 1.3.2 MapReduce的体系结构
  14. 1.4 Hadoop与分布式开发
  15. 1.5 Hadoop计算模型—MapReduce
  16. 1.6 Hadoop的数据管理
  17. 1.6.1 HDFS的数据管理
  18. 1.6.2 HBase的数据管理
  19. 1.6.3 Hive的数据管理
  20. 1.7 小结
  21. 第2章 Hadoop的安装与配置
  22. 2.1 在Linux上安装与配置Hadoop
  23. 2.1.1 安装JDK 1.6
  24. 2.1.2 配置SSH免密码登录
  25. 2.1.3 安装并运行Hadoop
  26. 2.2 在Windows上安装与配置Hadoop
  27. 2.2.1 安装Cygwin
  28. 2.2.2 配置环境变量
  29. 2.2.3 安装和启动sshd服务
  30. 2.2.4 配置SSH免密码登录
  31. 2.3 安装和配置Hadoop集群
  32. 2.3.1 网络拓扑
  33. 2.3.2 定义集群拓扑
  34. 2.3.3 建立和安装Cluster
  35. 2.4 日志分析及几个小技巧
  36. 2.5 小结
  37. 第3章 Hadoop应用案例分析
  38. 3.1 Hadoop在Yahoo!的应用
  39. 3.2 Hadoop在eBay的应用
  40. 3.3 Hadoop在百度的应用
  41. 3.4 Hadoop在Facebook的应用
  42. 3.5 Hadoop平台上的海量数据排序
  43. 3.6 小结
  44. 参考文献
  45. 第4章 MapReduce计算模型
  46. 4.1 为什么要用MapReduce
  47. 4.2 MapReduce计算模型
  48. 4.2.1 MapReduce Job
  49. 4.2.2 Hadoop中的Hello World程序
  50. 4.2.3 MapReduce的数据流和控制流
  51. 4.3 MapReduce任务的优化
  52. 4.4 Hadoop流
  53. 4.4.1 Hadoop流的工作原理
  54. 4.4.2 Hadoop流的命令
  55. 4.4.3 实战案例:添加Bash程序和Python程序到Hadoop流中
  56. 4.5 Hadoop Pipes
  57. 4.6 小结
  58. 第5章 开发MapReduce应用程序
  59. 5.1 系统参数的配置
  60. 5.2 配置开发环境
  61. 5.3 编写MapReduce程序
  62. 5.3.1 Map处理
  63. 5.3.2 Reduce处理
  64. 5.4 本地测试
  65. 5.5 运行MapReduce程序
  66. 5.5.1 打包
  67. 5.5.2 在本地模式下运行
  68. 5.5.3 在集群上运行
  69. 5.6 网络用户界面
  70. 5.6.1 JobTracker页面
  71. 5.6.2 工作页面
  72. 5.6.3 返回结果
  73. 5.6.4 任务页面
  74. 5.6.5 任务细节页面
  75. 5.7 性能调优
  76. 5.8 MapReduce工作流
  77. 5.8.1 将问题分解成MapReduce工作
  78. 5.8.2 运行相互依赖的工作
  79. 5.9 小结
  80. 第6章 MapReduce应用案例
  81. 6.1 单词计数
  82. 6.1.1 实例描述
  83. 6.1.2 设计思路
  84. 6.1.3 程序代码
  85. 6.1.4 代码解读
  86. 6.1.5 程序执行
  87. 6.1.6 代码结果
  88. 6.2 数据去重
  89. 6.2.1 实例描述
  90. 6.2.2 设计思路
  91. 6.2.3 程序代码
  92. 6.3 排序
  93. 6.3.1 实例描述
  94. 6.3.2 设计思路
  95. 6.3.3 程序代码
  96. 6.4 单表关联
  97. 6.4.1 实例描述
  98. 6.4.2 设计思路
  99. 6.4.3 程序代码
  100. 6.5 多表关联
  101. 6.5.1 实例描述
  102. 6.5.2 设计思路
  103. 6.5.3 程序代码
  104. 6.6 小结
  105. 第7章 MapReduce工作机制
  106. 7.1 MapReduce作业的执行流程
  107. 7.1.1 MapReduce任务的执行总流程
  108. 7.1.2 提交作业
  109. 7.1.3 初始化作业
  110. 7.1.4 分配任务
  111. 7.1.5 执行任务
  112. 7.1.6 更新任务执行进度和状态
  113. 7.1.7 完成作业
  114. 7.2 错误处理机制
  115. 7.2.1 硬件故障
  116. 7.2.2 任务失败
  117. 7.3 作业调度机制
  118. 7.4 shuffle和排序
  119. 7.4.1 map端
  120. 7.4.2 reduce端
  121. 7.4.3 shuffle过程的优化
  122. 7.5 任务执行
  123. 7.5.1 推测式执行
  124. 7.5.2 任务JVM重用
  125. 7.5.3 跳过坏记录
  126. 7.5.4 任务执行环境
  127. 7.6 小结
  128. 第8章 Hadoop I/O操作
  129. 8.1 I/O操作中的数据检查
  130. 8.2 数据的压缩
  131. 8.2.1 Hadoop对压缩工具的选择
  132. 8.2.2 压缩分割和输入分割
  133. 8.2.3 在MapReduce程序中使用压缩
  134. 8.3 数据的I/O中序列化操作
  135. 8.3.1 Writable类
  136. 8.3.2 实现自己的Hadoop数据类型
  137. 8.4 针对MapReduce的文件类
  138. 8.4.1 SequenceFile类
  139. 8.4.2 MapFile类
  140. 8.5 小结
  141. 第9章 HDFS详解
  142. 9.1 Hadoop的文件系统
  143. 9.2 HDFS简介
  144. 9.3 HDFS体系结构
  145. 9.3.1 HDFS的相关概念
  146. 9.3.2 HDFS的体系结构
  147. 9.4 HDFS的基本操作
  148. 9.4.1 HDFS的命令行操作
  149. 9.4.2 HDFS的Web界面
  150. 9.5 HDFS常用Java API详解
  151. 9.5.1 使用Hadoop URL读取数据
  152. 9.5.2 使用FileSystem API读取数据
  153. 9.5.3 创建目录
  154. 9.5.4 写数据
  155. 9.5.5 删除数据
  156. 9.5.6 文件系统查询
  157. 9.6 HDFS中的读写数据流
  158. 9.6.1 文件的读取
  159. 9.6.2 文件的写入
  160. 9.6.3 一致性模型
  161. 9.7 HDFS命令详解
  162. 9.7.1 通过distcp进行并行复制
  163. 9.7.2 HDFS的平衡
  164. 9.7.3 使用Hadoop归档文件
  165. 9.7.4 其他命令
  166. 9.8 小结
  167. 第10章 Hadoop的管理
  168. 10.1 HDFS文件结构
  169. 10.2 Hadoop的状态监视和管理工具
  170. 10.2.1 审计日志
  171. 10.2.2 监控日志
  172. 10.2.3 Metrics
  173. 10.2.4 Java管理扩展
  174. 10.2.5 Ganglia
  175. 10.2.6 Hadoop管理命令
  176. 10.3 Hadoop集群的维护
  177. 10.3.1 安全模式
  178. 10.3.2 Hadoop的备份
  179. 10.3.3 Hadoop的节点管理
  180. 10.3.4 系统升级
  181. 10.4 小结
  182. 第11章 Hive详解
  183. 11.1 Hive简介
  184. 11.1.1 Hive的数据存储
  185. 11.1.2 Hive的元数据存储
  186. 11.2 Hive的基本操作
  187. 11.2.1 在集群上安装Hive
  188. 11.2.2 配置Hive
  189. 11.3 Hive QL详解
  190. 11.3.1 数据定义(DDL)操作
  191. 11.3.2 数据操作(DML)
  192. 11.3.3 SQL操作
  193. 11.3.4 Hive QL的使用实例
  194. 11.4 Hive的网络(WebUI)接口
  195. 11.5 Hive的JDBC接口
  196. 11.6 Hive的优化
  197. 11.7 小结
  198. 第12章 HBase详解
  199. 12.1 HBase简介
  200. 12.2 HBase的基本操作
  201. 12.2.1 HBase的安装
  202. 12.2.2 运行HBase
  203. 12.2.3 HBase Shell
  204. 12.2.4 HBase配置
  205. 12.3 HBase体系结构
  206. 12.4 HBase数据模型
  207. 12.4.1 数据模型
  208. 12.4.2 概念视图
  209. 12.4.3 物理视图
  210. 12.5 HBase与RDBMS
  211. 12.6 HBase与HDFS
  212. 12.7 HBase客户端
  213. 12.8 Java API
  214. 12.9 HBase编程实例之MapReduce
  215. 12.10 模式设计
  216. 12.10.1 学生表
  217. 12.10.2 事件表
  218. 12.11 小结
  219. 第13章 Mahout详解
  220. 13.1 Mahout简介
  221. 13.2 Mahout的安装和配置
  222. 13.3 Mahout API简介
  223. 13.4 Mahout中的聚类和分类
  224. 13.4.1 什么是聚类和分类
  225. 13.4.2 Mahout中的数据表示
  226. 13.4.3 将文本转化成向量
  227. 13.4.4 Mahout中的聚类、分类算法
  228. 13.4.5 算法应用实例
  229. 13.5 Mahout应用:建立一个推荐引擎
  230. 13.5.1 推荐引擎简介
  231. 13.5.2 使用Taste构建一个简单的推荐引擎
  232. 13.5.3 简单分布式系统下基于产品的推荐系统简介
  233. 13.6 小结
  234. 第14章 Pig详解
  235. 14.1 Pig简介
  236. 14.2 Pig的安装和配置
  237. 14.2.1 Pig的安装条件
  238. 14.2.2 Pig的下载、安装和配置
  239. 14.2.3 Pig运行模式
  240. 14.3 Pig Latin语言
  241. 14.3.1 Pig Latin语言简介
  242. 14.3.2 Pig Latin的使用
  243. 14.3.3 Pig Latin的数据类型
  244. 14.3.4 Pig Latin关键字
  245. 14.4 用户定义函数
  246. 14.4.1 编写用户定义函数
  247. 14.4.2 使用用户定义函数
  248. 14.5 Pig实例
  249. 14.5.1 Local模式
  250. 14.5.2 MapReduce模式
  251. 14.6 Pig进阶
  252. 14.6.1 数据实例
  253. 14.6.2 Pig数据分析
  254. 14.7 小结
  255. 第15章 ZooKeeper详解
  256. 15.1 ZooKeeper简介
  257. 15.1.1 ZooKeeper的设计目标
  258. 15.1.2 数据模型和层次命名空间
  259. 15.1.3 ZooKeeper中的节点和临时节点
  260. 15.1.4 ZooKeeper的应用
  261. 15.2 ZooKeeper的安装和配置
  262. 15.2.1 在集群上安装ZooKeeper
  263. 15.2.2 配置ZooKeeper
  264. 15.2.3 运行ZooKeeper
  265. 15.3 ZooKeeper的简单操作
  266. 15.3.1 使用ZooKeeper命令的简单操作步骤
  267. 15.3.2 ZooKeeper API的简单使用
  268. 15.4 ZooKeeper的特性
  269. 15.4.1 ZooKeeper的数据模型
  270. 15.4.2 ZooKeeper会话及状态
  271. 15.4.3 ZooKeeper Watches
  272. 15.4.4 ZooKeeper ACL
  273. 15.4.5 ZooKeeper的一致性保证
  274. 15.5 ZooKeeper的Leader选举
  275. 15.6 ZooKeeper锁服务
  276. 15.6.1 ZooKeeper中的锁机制
  277. 15.6.2 ZooKeeper提供的一个写锁的实现
  278. 15.7 使用ZooKeeper创建应用程序
  279. 15.8 小结
  280. 第16章 Avro详解
  281. 16.1 Avro简介
  282. 16.1.1 模式声明
  283. 16.1.2 数据序列化
  284. 16.1.3 数据排列顺序
  285. 16.1.4 对象容器文件
  286. 16.1.5 协议声明
  287. 16.1.6 协议传输格式
  288. 16.1.7 模式解析
  289. 16.2 Avro的C/C++实现
  290. 16.3 Avro的Java实现
  291. 16.4 GenAvro(Avro IDL)语言
  292. 16.5 Avro SASL概述
  293. 16.6 小结
  294. 第17章 Chukwa详解
  295. 17.1 Chukwa简介
  296. 17.2 Chukwa架构
  297. 17.2.1 客户端(Agent)及其数据模型
  298. 17.2.2 收集器(Collector)和分离解析器(Demux)
  299. 17.2.3 HICC
  300. 17.3 Chukwa的可靠性
  301. 17.4 Chukwa集群搭建
  302. 17.4.1 基本配置要求
  303. 17.4.2 安装Chukwa
  304. 17.5 Chukwa数据流的处理
  305. 17.6 Chukwa与其他监控系统比较
  306. 17.7 小结
  307. 参考文献
  308. 第18章 Hadoop的常用插件与开发
  309. 18.1 Hadoop Studio简介和使用
  310. 18.1.1 Hadoop Studio的安装和配置
  311. 18.1.2 Hadoop Studio的使用举例
  312. 18.2 Hadoop Eclipse简介和使用
  313. 18.2.1 Hadoop Eclipse安装和配置
  314. 18.2.2 Hadoop Eclipse的使用举例
  315. 18.2.3 Hadoop Eclipse插件开发
  316. 18.3 Hadoop Streaming简介和使用
  317. 18.3.2 使用Hadoop Streaming时常见的问题
  318. 18.4 Hadoop Libhdfs简介和使用
  319. 18.4.1 Hadoop Libhdfs安装和配置
  320. 18.4.2 Hadoop Libhdfs API简介
  321. 18.4.3 Hadoop Libhdfs的使用举例
  322. 18.5 小结
  323. 附录A 云计算在线检测平台
  324. A.1 平台介绍
  325. A.2 结构和功能
  326. A.2.1 前台用户接口的结构和功能
  327. A.2.2 后台程序运行的结构和功能
  328. A.3 检测流程
  329. A.4 使用
  330. A.4.1 功能使用
  331. A.4.2 返回结果介绍
  332. A.4.3 使用注意事项
  333. A.5 小结
载入中

热门划线

  1. MapReduce在执行时先指定一个map(映射)函数,把输入键值对映射成一组新的键值对,经过一定的处理后交给reduce, reduce对相同key下的所有value进行处理后再输出键值对作为最终的结果。3 人
  2. 分布式计算平台2 人
  3. Hive编译器会把Hive QL编译成一组MapReduce任务,从而方便MapReduce编程人员进行Hadoop应用的开发。2 人
  4. HDFS在集群上实现了分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。2 人
  5. MapReduce框架下并行程序中的三个主要函数:map、reduce、main。在这个结构中,需要用户完成的工作仅仅是根据任务编写map和reduce两个函数。2 人
  6. (1)文件写入2 人
  7. (2)文件读取2 人
  8. (3)文件块(Block)复制2 人
  9. Hadoop分别从三个角度将主机划分为两种角色。第一,划分为master和slave,即主人与奴隶;第二,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目录的管理很重要,管理目录的就相当于主人,而NameNode就是目录管理者);第三,从MapReduce的角度,将主机划分为JobTracker和TaskTracker(一个job经常被划分为多个task,从这个角度不难理解它们之间的关系)。2 人
  10. 后添加进来的属性取值覆盖掉前面所添加资源中的属性取值。2 人

喜欢这本书的人也喜欢