Hadoop 2.X HDFS源码剖析

徐鹏
献给远老师,愿正年轻的你,永远保持一颗对世界好奇的心。 献给我的父母、妹妹,我无法用语言表达对你们的爱,以及你们对这个家庭默默付出的感恩。 前言 今天Hadoop已经成为大数据处理中十分重要的平台,一个以Hadoop为基础的活跃的开源生态圈已经逐步形成,Hadoop的应用也由最初的互联网行业发展到金融行业、电信行业、IT设备商以及数以万计的中小企业。Hadoop的HDFS组件(Hadoop分布式文件系统)以及MapReduce组件分别为上层框架提供了分布式存储和计算的能力。 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 N…