为什么要写这本书
Apache HBase是基于Apache Hadoop构建的一个高可用、高性能、多版本的分布式NoSQL数据库,是Google BigTable的开源实现,通过在廉价服务器上搭建起大规模结构化存储集群,提供海量数据高性能的随机读写能力。
HBase项目自2006年提交第一行代码以来,直到如今,经历了13年的蓬勃发展。现在已经有大量企业采用HBase来存储和分析自身飞速增长的业务数据。从全球范围来看,国内HBase的关注度更是高居榜首,这得益于国内互联网、移动互联网、物联网等方向庞大的数据体量。诸多国内大型科技公司,如阿里巴巴、小米、腾讯、网易、华为、滴滴、快手、中国移动等等都已经把HBase作为极重要的基础依赖,很多公司对HBase社区也有长期的投入。截止到目前为止,HBase全球社区已经拥有了74位HBase Committer,而国内就有20位左右的Committer,占了近1/3的比例。近一两年,HBase在国内更是得到了长足的发展,2018年中国HBase技术社区成立,一年时间里社区在多个城市相继组织了9次线下技术沙龙活动,为HBase更好地在国内各公司茁壮成长做出了卓越的贡献。
然而,和社区用户多次交流后发现,他们都希望我们能推荐一本HBase的书。当前市面上有关HBase的书籍大部分都集中于如何使用HBase,例如HBase集群部署、客户端API以及协处理器等。诚然,这对快速掌握和使用HBase非常有好处,但是许多HBase使用者并不满足于此,他们更希望能了解和掌握其内部运行原理。因此,当机械工业出版社的编辑吴怡老师,联系到我们是否有想法为HBase写一本书时,我们毫不犹豫地就答应了。
本书会从设计的角度对HBase的整个体系架构和各核心组件进行系统的分析和讲解。与此同时,还会介绍常用的性能调优策略以及问题诊断的方法和技巧,帮助读者更好的在实际生产环境实践。另外,本书最后章节会集中介绍HBase 2.x版本的核心特性,例如Procedure v2、In Memory Compactions以及MOB等。
读者对象
本书不是一本教你如何部署HBase集群、使用HBase客户端API进行读写操作的书,本书面向那些使用HBase作为数据库后端存储的应用程序开发者、有一定经验的运维人员和对HBase内核设计感兴趣的技术极客。
如果你想深入了解HBase的每个组件是如何工作的,如果你想更好地运维或者调优你的HBase集群,如果你想了解HBase 2.x版本的核心特性,就请阅读本书。想要更好的学习本书,需要具备如下条件:
了解HBase的基本操作
了解C、Java等高级语言
对一些基本算法有所了解,因为本书会从源代码层面分析HBase的工作机制,如果你能了解这些算法,会对你的理解非常有帮助
如何阅读本书
本书有16个章节,分为6个主要部分:
第一部分:HBase基础部分,包含1、2章节。其中第1章主要介绍HBase系统的发展历史、数据模型以及体系结构,第1章节主要介绍HBase系统中常用的数据结构以及基础算法。
第二部分:HBase系统相关组件,包含3、4、5三章。其中第3章重点介绍HBase所依赖的核心组件,包括ZooKeeper、HDFS等,第4章介绍HBase客户端组件实现,第5章介绍RegionServer内部组件的实现。
第三部分:HBase核心工作原理,包含6、7、8、9、10、11六章。其中第6章介绍HBase读写流程,第7章介绍HBase Compaction的实现原理,第8章介绍HBase中Region的迁移、合并以及分裂等操作是如何实现的,第9章介绍RegionServer宕机后如何通过HLog进行数据恢复,第10章介绍HBase不同集群之间的复制是如何实现的,第11章介绍HBase如何通过Snapshot机制完成数据的备份以及恢复。
第四部分:HBase运维调优实践,包含12、13、14三章。其中第12章介绍HBase集群常用的运维管理操作,包括集群如何有效监控,基准性能如何测试等,第13章集中介绍HBase集群的常用调优技巧,第14章重点分析几个HBase实际运维案例,通过案例分析介绍HBase集群问题定位处理的方法和技巧。
第五部分:HBase 2.x核心特性,包含第15章,重点介绍HBase最新2.x版本的核心功能特性。
第六部分:HBase高级话题,包含第16章,这个章节重点介绍社区中比较热门的二级索引话题以及如何进行HBase内核的测试以及开发。
本书的六个部分都可以单独成册,读者完全可以从书中任何一个部分开始阅读。当然,如果你想更加系统的学习HBase,建议你从前往后逐章阅读。
致谢
在编写本书的过程中,我们非常感谢给予了我们如此多帮助和鼓励的朋友、家人以及同事们。首先感谢HBase官方社区的开发者,是他们极其卓越的工作让我们有机会写这样一本书。另外,还要感谢许许多多中国HBase技术社区的小伙伴,感谢他们提供的对于HBase系统实际问题以及解决方案的深入见解。同时感谢我们的家人,没有他们的鼓励和支持,本书不可能完成。最后,一份特别的感谢要送给本书策划编辑吴怡,感谢她在全书撰写过程中所给予的详细指点及其有用的建议。