Hadoop技术内幕

Hadoop技术内幕

深入解析Hadoop Common和HDFS架构设计与实现原理

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

作品简介

本书由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。除此之外,本书还从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及Java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和分析,对提高读者的分布式技术能力和Java编程能力都非常有帮助。本书适合Hadoop的二次开发人员、应用开发工程师、运维工程师阅读。

全书共9章,分为三部分:第一部分(第1章)主要介绍了Hadoop源代码的获取和源代码阅读环境的搭建;第二部分(第2~5章)对Hadoop公共工具Common的架构设计和实现原理进行了深入分析,包含Hadoop的配置信息处理、面向海量数据处理的序列化和压缩机制、Hadoop的远程过程调用,以及满足Hadoop上各类应用访问数据的Hadoop抽象文件系统和部分具体文件系统等内容;第三部分(第6~9章)对Hadoop的分布式文件系统HDFS的架构设计和实现原理进行了详细的分析,这部分内容采用了总分总的结构,第6章对HDFS的各个实体和实体间接口进行了分析;第7章和第8章分别详细地研究了数据节点和名字节点的实现原理,并通过第9章对客户端的解析,回顾了HDFS各节点间的配合,完整地介绍了一个大规模数据存储系统的实现。

蔡斌:资深Hadoop技术专家,基于Hadoop的开源项目X-RIME的作者之一。国内Hadoop应用和源代码研究领域的先驱之一,有10余年开发经验,先后任职于朗讯科技、IBM中国研究院等国内外知名企业,目前担任腾讯数据平台部的高级工程师,从事Hadoop相关技术的研究、应用和实施,实战经验非常丰富。对分布式计算、电信增值业务、网络管理等领域有深刻的认识和理解,拥有近10项发明专利,其中两项为美国专利,大部分与海量数据处理相关。近期关注海量数据的流式处理、Hadoop上的大数据应用与挖掘等。

陈湘萍:北京大学计算机系博士,目前就职于中山大学,专注于Hadoop、云计算、软件中间件、模型驱动的软件工程等技术的研究和实践。拥有发明专利5项,参与1项国家电子行业标准的制定,发表学术论文10余篇。

作品目录

  1. 前言
  2. 为什么写本书
  3. 读者对象
  4. 本书的主要内容
  5. 勘误和支持
  6. 致谢
  7. 第一部分 环境准备
  8. 第1章 源代码环境准备
  9. 1.1 什么是Hadoop
  10. 1.2 准备源代码阅读环境
  11. 1.3 准备Hadoop源代码
  12. 1.4 小结
  13. 第二部分 Common的实现
  14. 第2章 Hadoop配置信息处理
  15. 2.1 配置文件简介
  16. 2.2 Hadoop Configuration详解
  17. 2.3 Configurable接口
  18. 2.4 小结
  19. 第3章 序列化与压缩
  20. 3.1 序列化
  21. 3.2 压缩
  22. 3.3 小结
  23. 第4章 Hadoop远程过程调用
  24. 4.1 远程过程调用基础知识
  25. 4.2 Java动态代理
  26. 4.3 Java NIO
  27. 4.4 Hadoop中的远程过程调用
  28. 4.5 Hadoop IPC连接相关过程
  29. 4.6 Hadoop IPC方法调用相关过程
  30. 4.7 Hadoop IPC上的其他辅助过程
  31. 4.8 小结
  32. 第5章 Hadoop文件系统
  33. 5.1 文件系统
  34. 5.2 Linux文件系统
  35. 5.3 分布式文件系统
  36. 5.4 Java文件系统
  37. 5.5 Hadoop抽象文件系统
  38. 5.6 Hadoop具体文件系统
  39. 5.7 小结
  40. 第三部分 Hadoop分布式文件系统
  41. 第6章 HDFS概述
  42. 6.1 初识HDFS
  43. 6.2 基于远程过程调用的接口
  44. 6.3 非远程过程调用接口
  45. 6.4 HDFS主要流程
  46. 6.5 小结
  47. 第7章 数据节点实现
  48. 7.1 数据块存储
  49. 7.2 流式接口的实现
  50. 7.3 作为整体的数据节点
  51. 7.4 小结
  52. 第8章 名字节点实现
  53. 8.1 文件系统的目录树
  54. 8.2 数据块和数据节点管理
  55. 8.3 远程接口ClientProtocol的实现
  56. 8.4 名字节点的启动和停止
  57. 8.5 小结
  58. 第9章 HDFS客户端
  59. 9.1 认识DFSClient
  60. 9.2 输入流
  61. 9.3 输出流
  62. 9.4 DistributedFileSystem的实现
  63. 9.5 HDFS常用工具
  64. 9.6 小结
载入中

热门划线

  1. 的Jim Gray基准排序,只用了209秒,而到了2009年4月,在一个1400节点的集群上对500GB数据进行排序,只用了59秒,这显示了Hadoop强大的计算能力。2008年开始,Hadoop迈向主流,开始2 人
  2. 狭义的Hadoop核心只包括Hadoop Common、Hadoop HDFS和Hadoop MapReduce三个子项目2 人
  3. 类似于其他序列化机制,Avro可以将数据结构或者对象转换成便于存储和传输的格式,其设计目标是用于支持数据密集型应用,适合大规模数据的存储与交换。2 人
  4. ZooKeeper作为一个分布式的服务框架,解决了分布式计算中的一致性问题。2 人
  5. 布尔变量quietmode,用来设置加载配置的模式。如果quietmode为true(默认值),则在加载解析配置文件的过程中,不输出日志信息。quietmode只是一个方便开发人员调试的变量。2 人
  6. 通过XInclude机制,把配置文件conf4performance.xml嵌入到当前配置文件,这种方法更有利于对配置文件进行模块化管理,同时就不需要再使用Configuration.addResource()方法加载资源conf4performance.xml了2 人
  7. Java序列化机制中,反序列化过程会不断地创建新的对象,但在Hadoop的序列化机制的反序列化过程中,用户可以复用对象2 人
  8. bzip2格式压缩文件中,块与块间提供了一个48位的同步标记,因此,bzip2支持数据分割。2 人
  9. java. lang.reflect.Proxy中的另一个关键字是reflect(反射),反射提供了一个非常丰富而精心设计的工具集,以便编写能够动态操纵Java代码的程序。2 人
  10. 加载文件系统操作,就是将某个文件系统“嫁接”到另一个文件系统的目录层次中2 人

喜欢这本书的人也喜欢