基本信息
【插图】

编辑推荐
√ 基于2.6新版,深入剖析RPC框架、Namenode、Datanode和HDFS客户端的实现
√ 以设计者角度了解HDFS 2.X,学习框架思想、设计模式、Java技巧以及编程规范
√ 掌握HDFS运行机制和底层机制,熟悉各组件间基本流程、通信、依赖、协同作业
√ 首部HDFS源码专著,提供大量流程图和代码段,更传授一种研读源码的特殊方法
内容简介
计算机书籍
徐鹏所*的《Hadoop2.X HDFS源码剖析》以
Hadoop 2.6.0源码为基础,深入剖析了HDFS 2.X
中各个模块的实现细节,包括RPC框架实现、
Namenode实现、Datanode实现以及HDFS客户端实现
等。本书一共有5章,其中**章从总体上介绍了HDFS
的组件、概念以及典型的流程,同时详细介绍了HDFS
各个组件间RPC接口的定义。第2章介绍了Hadoop RPC
框架的实现,Hadoop RPC是HDFS各个组件间通信所依
赖的底层框架,可以理解为HDFS的神经系统。第3~5
章分别介绍了Namenode、Datanode以及HDFS客户端
这三个组件的实现细节,同时穿插介绍了HDFS 2.X
的新特性,例如Namenode HA、Federation
Namenode等。
阅读本书可以帮助读者从架构设计与源码实现角
度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优
秀的设计思想、设计模式、Java语言技巧以及编程规
范等。这些对于读者全面提高自己的技术水平有很大
的帮助。
作译者
目录
1.1 HDFS概述
1.1.1 HDFS体系结构
1.1.2 HDFS基本概念
1.2 HDFS通信协议
1.2.1 Hadoop RPC接口
1.2.2 流式接口
1.3 HDFS主要流程
1.3.1 HDFS客户端读流程
1.3.2 HDFS客户端写流程
1.3.3 HDFS客户端追加写流程
1.3.4 Datanode启动、心跳以及执行名字节点指令流程
1.3.5 HA切换流程
第2章 Hadoop RPC
2.1 概述
2.1.1 RPC框架概述
2.1.2 Hadoop RPC框架概述
2.2 Hadoop RPC的使用
2.2.1 Hadoop RPC使用概述
2.2.2 定义RPC协议
前言
HDFS作为Hadoop中解决分布式存储的基础组件,最早是根据GFS(Google File System)论文的概念模型来设计实现的。然而,随着HDFS上层框架的丰富以及应用场景的扩展,用户对HDFS的功能、性能、稳定性、扩展性以及可靠性的要求越来越高,HDFS 2.X版本也就应运而生。相对于HDFS 1.X,HDFS 2.X版本提出了很多振奋人心的新特性,如Namenode HA、Federation Namenode、集中式缓存、快照等。但令人惋惜的是,至今还没有一本能够深入剖析HDFS 2.X内部实现细节,以及介绍HDFS 2.X新特性的书籍。本书的出现填补了上述空白,它是国内第一本深入剖析HDFS 2.X源码实现的书籍。
本书以Hadoop 2.6.0源码为基础,深入剖析了HDFS 2.X中各个模块的实现细节,包括RPC框架实现、Namenode实现、Datanode实现以及HDFS客户端实现等。阅读本书可以帮助读者从架构设计与源码实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很大的帮助。
如何阅读本书
由于篇幅原因,本书并没有介绍HDFS实现中的一些基础知识,例如Java NIO、动态代理、protobuf等。而是直接切入源码分析HDFS的设计与实现,同时介绍了一些经典的设计模式、Java语言技巧在HDFS实现中的应用。希望读者在阅读本书之前,先搭建好源码环境,并了解相应的基础知识,这样学习效果会更好。
本书一共有5章,相互之间的联系比较紧密,有联系的小节都有注释标注,读者可以根据注释跳跃阅读。
第1章是HDFS概述,从总体上介绍了HDFS的组件、概念以及典型的流程,同时详细介绍了HDFS各个组件间RPC接口的定义。由于HDFS流程大都比较复杂,往往涉及多个组件的配合,读者在阅读后续的具体章节时,可以查阅本章内容获取某个流程的总体描述,以及RPC接口的具体定义。
第2章介绍了Hadoop RPC框架的实现,Hadoop RPC是HDFS各个组件间通信所依赖的底层框架,可以理解为HDFS的神经系统。通过阅读本章,读者可以学习到一个典型的分布式RPC框架的实现细节,在本章中会介绍较多的设计模式,编程模型以及语言技巧,请读者注重积累。
第3~5章分别介绍了Namenode、Datanode以及HDFS客户端这三个组件的实现细节,同时穿插介绍了HDFS 2.X的新特性,例如Namenode HA就放在Namenode章介绍,而Federation Namenode新特性对Datanode的修改比较多,所以就放在Datanode章介绍。
读者在阅读本书的过程中,如果发现有任何不当之处,烦请您将意见和建议发往邮箱xupeng.bupt@gmail.com,不胜感激。
本书代码
本书分析的代码版本为Hadoop 2.6.0,书中部分较长的代码做了省略,完整的代码请从官网http://hadoop.apache.org下载。
致谢
感谢互联网,感谢开源软件,感谢Hadoop社区,感谢本书引用文献的所有原作者,是你们为Hadoop爱好者打开了一扇大门。
感谢电子工业出版社博文视点的张春雨老师,是您的信任使得这本书的出版成为可能。同时还要感谢许多我不知道名字的编辑为本书最终出版所做的付出和努力。
感谢丁雷在百忙之中抽出时间对本书提出许多建设性意见,同时感谢左谱军、张德阳、闫飞翔以及张涛对本书的审阅。
2015年写这本书时正是自己很困难的一段时期,我很感恩有许多朋友在生活、工作上给我帮助以及包容。感谢吴佳宁、刘文博,你们一直是第一个伸出援手的哥们。感谢郑晓彤、袁玮、贺子昂、李强、和紫东、刘丹、何一舟为我引荐机会,谢谢你们。
特别感谢远见,书的撰写过程是如此漫长,是你在这段时间里把自信、阳光和快乐传播给我,让我更加积极、勇敢和有信心。没有你,这本书永远无法完成。
最后感谢我的父母和妹妹,谢谢你们默默为我做出的牺牲和付出,你们永远是我前进的动力。
媒体评论
--亚马逊研发工程师 远见
无可置疑,这是一本修炼内力的书,就像《程序员的自我修养》一样,让大数据相关开发人员,尤其是大数据研发工程师,由浅入深了解HDFS底层各个组件之间的基本流程、通信、依赖、协同作业;同时本书从源码角度详细介绍了Hadoop 2.X版本HDFS各组件的实现原理,体现了作者对于HDFS底层机制的如臂使指,值得仔细研读学习。
--东方国信金融大数据部部门经理 丁雷
拥有了大数据,就拥有未来,大数据概念已经不再新鲜,但Hadoop 2.0发布以来,始终未曾有一本系统讲解HDFS源码的中文书籍,本书恰如其时的出现,弥补了此方面的空缺。当我拿起《Hadoop 2.X HDFS源码剖析》初稿,读过后犹如醍醐灌顶,作者带我拨开层层迷雾,探究了HDFS的运行机制以及底层细节。本书通过大量的流程图和代码片段,把Hadoop RPC框架、NameNode、DataNode以及HDFS Client等从源码角度一步一步地进行了详细的剖析。除此之外,作者更教授了一种研读源码的方法。徐鹏老师的这本书,对想了解HDFS设计及实现的读者来说是本十分难得的好书。
--搜狗糖猫高级研发工程师 闫飞翔
大数据时代,Hadoop HDFS是最常用的分布式存储方案。徐鹏这本书从源码角度,全面、细致地剖析了HDFS的架构和实现原理。读者在深入了解HDFS原理的同时,还能学习到很多架构设计和编码规范的经验。对互联网大数据研发人员及初学者,这都是不可多得的好书。
--百度资深研发工程师 陈琪
Hadoop从云计算时代到现在的大数据时代都扮演着非常重要的角色,任何一个互联网公司几乎无一例外都在使用Hadoop来处理数据、挖掘数据中的价值。《Hadoop 2.X HDFS源码剖析》从Hadoop最基础的源码入手,由浅入、深层层深入,不仅分析了Hadoop的实现原理,更将工程中经常用到的经典技术原理讲解得非常透彻。对于以后想从事大数据或分布式计算相关的朋友这是一本非常不错的教材。
--阿里巴巴技术专家曾魁
如同Hadoop本身一样,本书简明扼要、通俗易懂,不仅阐述HDFS的典型应用,更是很好地把握住目前Hadoop从业者的核心需求,不但知其然更知其所以然。所有想一探最新Hadoop HDFS 2.X 源码究竟的人都需要这本不可或缺的宝典。
--知乎云架构工程师 王东洋
本书集作者多年的Hadoop经验,出处都有智慧闪亮。
--硅谷LinkedIn总部资深工程师 王艺嵩
《Hadoop 2.X HDFS源码剖析》非常全面地介绍Hadoop HDFS的实现框架,对源码的解读是目前可见书籍中最详尽的一部。其从源代码层面深入浅出介绍NameNode、DataNode、HDFS客户端这三个组件的实现细节,对致力于深入研究HDSF原理的人来说是不二选择。
--阿里巴巴研发工程师 左谱军