前言

在数据规模爆炸式增长的今天,复杂的业务场景对数据的使用提出了更高的要求,数据需具备良好的容错能力,集群服务应拥有健壮的稳定性。Hadoop HDFS自诞生至今,一直都是大数据领域事实上的分布式存储基座,已经得到众多企业支持,包括Cloudera、Uber、腾讯、美团、京东等。据了解,不少生产环境集群节点达到万台以上,可以轻松应对多场景业务类型的访问。在开源社区,HDFS始终保持较高关注度,版本迭代也很快。至本书撰写前夕,Hadoop版本已经来到3.4。荣幸之至,作者也贡献了部分feature。

由于工作的关系,作者日常接触到不少和集群有关的问题,慢慢地也有了一些经验积累。这里分享几个编写本书的初衷:

虽然HDFS已经被广泛应用于大数据领域,且直接或间接从事和HDFS有关的人员很多,如研发工程师、运维工程师,但大多数人对HDFS这款分布式系统的认识只停在“熟悉”的阶段,还远未达到“理解”的程度,因此迫切需要一本既有广度、又兼顾深度的指导书籍。

作者此前专职从事过较长时间和HDFS有关的研发与运维工作,也正是在这段时期提升了自己分布式系统架构设计的能力,同时还掌握了较为丰富的一线集群管理经验。希望能够将这些总结和个人的理解分享给读者。

尽管市面上存在一些和Hadoop相关的图书,但调研后发现大多数书中内容较浅,缺乏广度和系统性。希望本书可以弥补这些遗憾。

读者对象

本书适合以下读者阅读。

• 大数据从业者,如中高级开发人员、架构师、技术经理。

• 想要系统学习分布式架构设计的技术人员和运维人员。

• 想要提高分布式系统研发水平的人员。

• 目前在云计算领域工作,想要拓宽自己技术能力的专业人员。

• 在高校学习的研究生,或有一定基础的高年级本科生。

本书特色

(1)技术点系统、全面

本书以Hadoop HDFS主流的版本为基准,选择由浅入深的方式,全面细致地介绍了构成分布式存储系统的各项关键组成部分。为照顾到不同层次的读者,每章都配置了原理解析、流程分析图,以及必要的实践指导。

(2)具备较高的实用指导价值

在编写本书前,作者收集了很多行业内从业者在集群维护过程中遇到的痛点。书中选用的案例均来源于现实或非常典型的案例,对应的解题思路和实践方案均得到验证,具有很强的实用性,方便读者查阅和参考。

(3)技术启发性强

一本好的技术书籍,不应局限于介绍产品本身,还应与读者产生共鸣,这也是作者最希望看到的。作者在这里提醒读者,在阅读本书时要留意两点:一是注意不同章节间的关联;二是留意每章后面的拓展改进部分。

本书内容

本书分为两大篇,共10章。

第1章介绍成熟的分布式系统架构框架及其影响因素、Hadoop HDFS发展历史、组件特色和包含的主要模块。

第2章介绍元数据,包括元数据信息、结构分析、拓展优化等。

第3章介绍HDFS管理存储数据的方法,涉及众多的内部运行原理、Namespace服务、数据节点服务等一些非常关键的部分。

第4章介绍Block和副本。详细介绍了HDFS是如何管理它们及生命周期、数据自愈等。可以说理解了本章内容,就充分了解了数据在HDFS系统中的存在方式。

第5章介绍Client与不同节点服务的通信原理,以及数据读写流程。

第6章介绍高可用机制,包括QJM和HA实现原理、ZKFC服务、隔离机制,以及可改进的方法。

第7章介绍缓存在分布式系统中的实现方法,列举了一些适用缓存的场景及后续版本的迭代计划。

第8章介绍在使用过程中拓展集群的方法。详细说明了水平拓展、垂直伸缩的策略及参考实现,非常具有实用指导价值。

第9章介绍想要实现合理的数据分层是如何做到的。这部分知识是超大集群维护过程中必须掌握的。

第10章介绍如何高效建设集群监控体系、多租户管控方法等。此外,还介绍了当下非常有价值的发展方向——Data Lakes。

如何阅读本书

• 对于没有接触过分布式系统或大数据领域的读者,建议按照顺序从第1章开始阅读。

• 对于了解过Hadoop部分原理的运维人员或初级开发者,建议也按照顺序从第1章开始阅读,这对于全面了解HDFS很有益处。

• 对于做过HDFS相关研发的中高级开发者,可选择从第2章开始阅读。

本书是按照由浅入深的方式编写的,读者在阅读过程中,尤其是阅读本书后面的章节时,应该加入自己的思考,这样才可以达到事半功倍的学习效果。

勘误与支持

创作须始终保持严谨的态度,作者每完成一章都会反复核验。奈何水平有限,书中难免会出现不足之处,在此恳请读者批评指正。读者如在书中遇到需要解答的地方,欢迎发送邮件至zhujh.inx@gmail.com,作者将尽可能回复每一封邮信。期待能够得到读者的真挚反馈!

致谢

感谢机械工业出版社的张淑谦老师在这一年多的时间里始终支持我的写作,并给予了非常多的帮助和建议。没有他的鼓励和帮助,这本书不会那么顺利完成。

感谢Apache社区的小伙伴,是你们让我学到更多。

最后,感谢所有支持、鼓励和帮助过我的人。谨以此书献给我最亲爱的家人、朋友们!

祝江华

2022年初冬 于杭州