这是一本深入介绍HBase系统的书籍,由HBase PMC成员与网易资深工程师倾力打造,多位技术专家联袂推荐。本书不仅用大量图片详细解剖HBase内核,还用案例展示了HBase的开发运维技巧,是一本不可能多得的高质量图书,值得每一位大数据开发运维人员放在案头深读。
本书系统介绍HBase基本原理与运行机制,融入了作者多年的开发经验与实践技巧。主要内容包括:HBase的体系结构和系统特性,HBase的基础数据结构与算法、依赖服务、客户端,RegionServer的核心模块,HBase的读写流程,Compaction实现原理和使用策略,负载均衡的实现与应用,HBase的宕机恢复原理,复制、备份与恢复原理,HBase的运维方法、系统调优与案例分析,最后介绍了HBase 2.x的核心技术,以及一些高级话题,如二级索引、单行事务、跨行事务、HBase开发与测试等。
前言
第1章 HBase 概述
1.1HBase 前生今世
1.2HBase数据模型
1.2.1逻辑视图
1.2.2多维稀疏排序Map
1.2.3物理视图
1.2.4行式存储、列式存储、列簇式存储
1.3HBase体系结构
1.4 HBase系统特性
第2章 基础数据结构与算法
2.1 跳跃表
2.2 LSM树
2.3 布隆过滤器
2.4 设计KV存储引擎Minibase
2.5拓展阅读
第3章 HBase依赖服务
3.1ZooKeeper简介
3.2HDFS简介
3.4拓展阅读
第4章 HBase客户端
4.1 HBase客户端实现
4.1.1 定位Meta表
4.1.2 Scan的复杂之处
4.2 HBase客户端避坑指南
第5章RegionServer的核心模块
5.1 RegionServer内部结构
5.2 HLog
5.2.1 HLog文件结构
5.2.2 HLog文件存储
5.2.3 HLog生命周期
5.3 MemStore
5.3.1 MemStore内部结构
5.3.2 MemStore 的GC问题
5.3.3 MSLAB内存管理方式
5.3.4 MemStore Chunk Pool
5.3.5 MSLAB相关配置
5.4 HFile
5.4.1 HFile逻辑结构
5.4.2 HFile物理结构
5.4.3 HFile的基础Block
5.4.4 HFile中布隆过滤器相关的Block
5.4.5 HFile中索引相关的Block
5.4.6HFile文件查看工具
5.5 BlockCache
5.5.1.LRUBlockCache
5.5.2.SlabCache
5.5.3.BucketCache
5.5.4.不同BlockCache方案性能对比
5.6拓展阅读
第6章 HBase读写流程
6.1 HBase写入流程
6.1.1写入流程的三个阶段
6.1.2 Region写入流程
6.1.3 MemStore Flush
6.2 BulkLoad功能
6.2.1 BulkLoad核心流程
6.2.2 BulkLoad基础案例
6.3 HBase读取流程
6.3.1 Client-Server读取交互逻辑
6.3.2 Server端Scan框架体系
6.3.3过滤淘汰不符合查询条件的HFile
6.3.4HFile中读取待查找Key
思考与练习
6.4深入理解Coprocessor
6.4.1 Coprocessor分类
6.4.2 Coprocessor加载
第7章 Compaction实现
7.1 Compaction基本工作原理
7.1.1 Compaction基本流程
7.1.2 Compaction触发时机
7.1.3 待合并HFile集合选择策略
7.1.4 挑选合适的线程池
7.1.5 HFile文件合并执行
思考与练习
7.1.6Compaction相关注意事项
7.2 Compaction高级策略
第8章 负载均衡实现
8.1 Region迁移
8.2 Region合并
8.3 Region分裂
8.4 HBase的负载均衡应用
8.5拓展阅读
第9章 宕机恢复原理
9.1 HBase常见故障分析
9.2 HBase故障恢复基本原理
9.3 HBase故障恢复流程
第10章 复制
10.1 复制场景及原理
10.1.1管理流程的设计和问题
10.1.2复制原理
10.2 串行复制
10.2.1非串行复制导致的问题
10.2.2串行复制的设计思路
思考与练习
10.3 同步复制
10.3.1设计思路
10.3.2同步复制和异步复制对比
10.4拓展阅读
第11章 备份与恢复
11.1 Snapshot概述
11.2 Snapshot创建
11.2.1 Snapshot技术基础原理
11.2.2 在线Snapshot的分布式架构——两阶段提交
11.2.3 Snapshot核心实现
11.3 Snapshot恢复
11.4 Snapshot进阶
11.5拓展阅读
第12章 HBase运维
12.1 HBase系统监控
12.1.1 HBase监控指标输出方式
12.1.2 HBase核心监控指标
12.1.3 HBase表级监控
12.2 HBase集群基准性能测试
12.3 HBase YCSB
12.4 HBase业务隔离
12.5 HBase Shell
12.6 HBase HBCK
12.8 HBase 核心参数配置
12.8 HBase系统相关日志
12.9 HBase表设计
第13章 HBase系统调优
13.1 HBase GC调优
13.2 G1 GC性能调优
13.2.1 CMS和G1 GC的本质区别
......
对于之前中文图书界的各种源码和系统解析类图书,我一直都不是很推荐。因为开源项目迭代的速度非常快,等书真正出版,里面的很多内容已经过时了。而本书避开了单纯解读源码,从原理出发对HBase进行讲解,可以做到常看常新,不会轻易过时,自然对于HBase相关从业者和爱好者是不可多得的好书。同时,本书不仅介绍分布式存储系统各种设计原理,而且还介绍在关键设计上如何取舍,对于所有对分布式存储感兴趣的读者,本书也是不可多得的优秀书籍。
----张铎 HBase项目主席,HBase PMC成员,小米存储团队负责人
HBase作为Google BigTable的开源实现,已经有十多年的历史了,目前依然在国内众多互联网公司和传统公司内应用广泛,颇有种“老当益壮”的风范。但长期以来,深入解析HBase的技术书籍比较匮乏,相信很多人都是靠着多年前的《HBasequanwei指南》和本书作者范欣欣的博客来入门HBase的,本书算是终于填补了这块空白,不仅有对HBase经典基础知识的详细讲解,也有对HBase 2.0版本新功能的介绍,十分全面,值得所有HBase相关从业者和爱好者入手学习。
----张洸豪 HBase PMC成员,小米HBase团队负责人
HBase系统涉及分布式理论、存储、大数据处理等技术, 铺开来写都可单独成书,所以深入掌握HBase难度极大。两位作者同为HBase知名专家,解决过大量疑难杂症,为社区贡献过大量代码,剖析HBase原理能做到深入浅出,更难得的是将相关原理融汇贯通, 以运维调优实践的方式呈现给我们。本书理论性和实操性俱佳,必须入手一读。
----余利华 网易数据科学中心部门总监
目前在开源社区,能被市场广泛接受的分布式持久化KV存储系统不多,HBase就是其中一款优秀产品。Apache社区开放的生态环境,也使HBase得到了健康的发展,全球各数据库大会和大数据会议上,可以频繁地见到HBase的身影。从HBase整个生态链上来看,我们也可以发现像Phoenix、Omid等各种不同框架都可以建立在HBase之上,用来实现业务在SQL和事务上的不同需求。在网易内部,HBase从支持单一的日志存储,发展成为同时支撑各业务部门的上百个不同业务。基于HBase + SSD的存储系统,在实时推荐、实时风控等场景下都得到了很好的应用,对于一般化的场景则更多,例如日志存储、订单存储、用户画像等等。希望本书能帮助读者更深入、系统地了解HBase。
----蒋鸿翔 网易大数据和数据库内核团队负责人