首页>参考读物>计算机科学与技术>数据库

HBase原理与实践
作者 : 胡争 范欣欣 著
丛书名 : 数据库技术丛书
出版日期 : 2019-09-05
ISBN : 978-7-111-63495-9
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 318
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书系统介绍HBase基本原理与运行机制,融入了作者多年的开发经验与实践技巧。主要内容包括:HBase的体系结构和系统特性,HBase的基础数据结构与算法、依赖服务、客户端,RegionServer的核心模块,HBase的读写流程,Compaction实现原理和使用策略,负载均衡的实现与应用,HBase的宕机恢复原理,复制、备份与恢复原理,HBase的运维方法、系统调优与案例分析,最后介绍了HBase 2.x的核心技术以及一些高级话题,如二级索引、单行事务和跨行事务、HBase开发与测试等。

图书特色

HBase PMC成员与网易资深工程师倾力打造,多位技术专家联袂推荐。
深入HBase内核,抽丝剥茧,剖析HBase数据库的基础理论与开发运维。
HBase Principle and Practice
HBase 原理与实践
胡争 范欣欣  著

图书前言

Apache HBase是基于Apache Hadoop构建的一个高可用、高性能、多版本的分布式NoSQL数据库,是Google BigTable的开源实现,通过在廉价服务器上搭建大规模结构化存储集群,提供海量数据高性能的随机读写能力。
HBase项目自2006年提交第一行代码以来,经历了13年的蓬勃发展。现在已经有大量企业采用HBase来存储和分析飞速增长的业务数据。从全球范围来看,国内HBase的关注度更是高居榜首,这得益于国内互联网、移动互联网、物联网等领域庞大的数据体量。诸多国内大型科技公司,如阿里巴巴、小米、腾讯、网易、华为、滴滴、快手、中国移动等,都已经把HBase作为极重要的基础设施,很多公司对HBase社区也有长期的投入。截至2019年8月,HBase全球社区已经拥有了83位HBase Committer,而国内就有20位左右的Committer,占了近1/4的比例。近一两年,HBase在国内更是得到了长足的发展,2018年中国HBase技术社区成立,一年时间里社区在多个城市相继组织了9次线下技术沙龙活动,为HBase更好地在国内各公司茁壮成长做出了卓越的贡献。
我们和社区用户多次交流后发现,很多人都希望我们能推荐一本HBase的书。当前市面上有关HBase的书籍大部分都集中于如何使用HBase,例如部署HBase集群,使用客户端API进行读写操作以及协处理器等,诚然,这些内容对快速掌握和使用HBase非常有好处,但是许多HBase使用者并不满足于此,他们更希望能了解和掌握其内部运行原理。因此,当机械工业出版社的吴怡编辑询问我们是否有想法为HBase写一本书时,我们毫不犹豫地答应了。
本书从设计的角度对HBase的整个体系架构和各核心组件进行系统的分析和讲解。与此同时,还介绍常用的性能调优策略以及问题诊断的方法和技巧,帮助读者更好地在实际生产环境中实践。另外,本书最后章节集中介绍HBase 2.x版本的核心特性,例如Procedure v2、In Memory Compaction以及MOB等。
本书主要内容
本书不是一本入门级读物,本书面向那些使用HBase作为数据库后端存储的应用程序开发者、有一定经验的运维人员和对HBase内核设计感兴趣的人。
如果你想深入了解HBase的每个组件是如何工作的,如果你想更好地运维或者调优你的HBase集群,如果你想了解HBase 2.x版本的核心特性,就请阅读本书。想要更好地阅读本书,需要具备如下先决条件:
了解HBase的基本操作。
了解C、Java等高级语言。
对一些基本算法有所了解,因为本书会从源代码层面分析HBase的工作机制,如果你能了解这些算法,会使你更深入地理解HBase。
本书共有16章,可以分为6个部分。
第一部分:HBase基础部分,包含第1、2章。其中,第1章主要介绍HBase系统的发展历史、数据模型以及体系结构,第2章主要介绍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使用场景和相关解决方案,他们的经验和分享对推广和普及HBase项目做出了重大贡献。同时感谢我们的家人,没有他们的鼓励和支持,本书不可能完成。最后,一份特别的感谢要送给本书策划编辑吴怡,感谢她在全书撰写过程中所给予的详细指点以及有用的建议。

上架指导

计算机\数据库

封底文字

对于之前中文图书界的各种源码和系统解析类图书,我一直都不是很推荐。因为开源项目迭代的速度非常快,等书真正出版,里面的很多内容已经过时了。而本书避开了单纯解读源码,从原理出发对HBase进行讲解,可以做到常看常新,不会轻易过时,自然对于HBase相关从业者和爱好者是不可多得的好书。同时,本书不仅介绍分布式存储系统各种设计原理,而且还介绍在关键设计上如何取舍,对于所有对分布式存储感兴趣的读者,本书也是不可多得的优秀书籍。
----张铎 HBase项目主席,HBase PMC成员,小米存储团队负责人

HBase作为Google BigTable的最佳开源实现,已经有十多年的历史了,目前依然在国内众多互联网公司和传统公司内应用广泛,颇有种“老当益壮”的风范。但长期以来,深入解析HBase的技术书籍比较匮乏,相信很多人都是靠着多年前的《HBase权威指南》和本书作者范欣欣的博客来入门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。
----蒋鸿翔  网易大数据和数据库内核团队负责人

图书目录

前 言
第1章 HBase概述 1
1.1 HBase前生今世 1
1.2 HBase数据模型 4
1.2.1 逻辑视图 4
1.2.2 多维稀疏排序Map 5
1.2.3 物理视图 7
1.2.4 行式存储、列式存储、列簇式存储 7
1.3 HBase体系结构 9
1.4 HBase系统特性 11
第2章 基础数据结构与算法 13
2.1 跳跃表 14
2.2 LSM树 17
2.3 布隆过滤器 21
2.4 设计KV存储引擎MiniBase 25
第3章 HBase依赖服务 34
3.1 ZooKeeper简介 34
3.2 HBase中ZooKeeper核心配置 37
3.3 HDFS简介 39
3.4 HBase在HDFS中的文件布局 44
第4章 HBase客户端 48
4.1 HBase客户端实现 48
4.1.1 定位Meta表 51
4.1.2 Scan的复杂之处 53
4.2 HBase客户端避坑指南 57
第5章 RegionServer的核心模块 63
5.1 RegionServer内部结构 63
5.2 HLog 64
5.2.1 HLog文件结构 64
5.2.2 HLog文件存储 65
5.2.3 HLog生命周期 66
5.3 MemStore 67
5.3.1 MemStore内部结构 68
5.3.2 MemStore的GC问题 68
5.3.3 MSLAB内存管理方式 69
5.3.4 MemStore Chunk Pool 71
5.3.5 MSLAB相关配置 72
5.4 HFile 72
5.4.1 HFile逻辑结构 73
5.4.2 HFile物理结构 74
5.4.3 HFile的基础Block 75
5.4.4 HFile中与布隆过滤器相关的Block 77
5.4.5 HFile中索引相关的Block 79
5.4.6 HFile文件查看工具 81
5.4.7 HFile V3版本 83
5.5 BlockCache 84
5.5.1 LRUBlockCache 84
5.5.2 SlabCache 86
5.5.3 BucketCache 86
第6章 HBase读写流程 93
6.1 HBase写入流程 93
6.1.1 写入流程的三个阶段 93
6.1.2 Region写入流程 96
6.1.3 MemStore Flush 98
6.2 BulkLoad功能 104
6.2.1 BulkLoad核心流程 104
6.2.2 BulkLoad基础案例 105
6.3 HBase读取流程 107
6.3.1 Client-Server读取交互逻辑 108
6.3.2 Server端Scan框架体系 109
6.3.3 过滤淘汰不符合查询条件的HFile 112
6.3.4 从HFile中读取待查找Key 112
6.4 深入理解Coprocessor 115
6.4.1 Coprocessor分类 116
6.4.2 Coprocessor加载 118
第7章 Compaction实现 120
7.1 Compaction基本工作原理 120
7.1.1 Compaction基本流程 122
7.1.2 Compaction触发时机 123
7.1.3 待合并HFile集合选择策略 124
7.1.4 挑选合适的执行线程池 125
7.1.5 HFile文件合并执行 126
7.1.6 Compaction相关注意事项 127
7.2 Compaction高级策略 128
第8章 负载均衡实现 133
8.1 Region迁移 133
8.2 Region合并 137
8.3 Region分裂 137
8.4 HBase的负载均衡应用 144
第9章 宕机恢复原理 147
9.1 HBase常见故障分析 147
9.2 HBase故障恢复基本原理 148
9.3 HBase故障恢复流程 149
9.4 HBase故障时间优化 154
第10章 复制 158
10.1 复制场景及原理 158
10.1.1 管理流程的设计和问题 159
10.1.2 复制原理 161
10.2 串行复制 164
10.2.1 非串行复制导致的问题 164
10.2.2 串行复制的设计思路 166
10.3 同步复制 167
10.3.1 设计思路 168
10.3.2 同步复制和异步复制对比 171
第11章 备份与恢复 173
11.1 Snapshot概述 173
11.2 Snapshot创建 175
11.2.1 Snapshot技术基础原理 175
11.2.2 在线Snapshot的分布式架构—两阶段提交 176
11.2.3 Snapshot核心实现 178
11.3 Snapshot恢复 179
11.4 Snapshot进阶 181
第12章 HBase运维 184
12.1 HBase系统监控 184
12.1.1 HBase监控指标输出方式 184
12.1.2 HBase核心监控指标 185
12.1.3 HBase表级监控 187
12.2 HBase集群基准性能测试 189
12.3 HBase YCSB 192
12.4 HBase业务隔离 194
12.5 HBase HBCK 195
12.6 HBase核心参数配置 198
12.7 HBase表设计 203
12.8 Salted Table 206
第13章 HBase系统调优 209
13.1 HBase GC调优 209
13.2 G1 GC性能调优 211
13.3 HBase操作系统调优 223
13.4 HBase-HDFS调优策略 228
13.5 HBase读取性能优化 230
13.5.1 HBase服务器端优化 231
13.5.2 HBase客户端优化 232
13.5.3 HBase列簇设计优化 233
13.6 HBase写入性能调优 233
13.6.1 HBase服务器端优化 234
13.6.2 HBase客户端优化 235
第14章 HBase运维案例分析 237
14.1 RegionServer宕机 237
14.2 HBase写入异常 241
14.3 HBase运维时问题分析思路 250
第15章 HBase 2.x核心技术 253
15.1 Procedure功能 253
15.2 In Memory Compaction 268
15.3 MOB对象存储 273
15.4 Offheap读路径和Offheap写路径 277
15.5 异步化设计 283
第16章 高级话题 289
16.1 二级索引 289
16.2 单行事务和跨行事务 293
16.3 HBase开发与测试 301
16.3.1 HBase社区运作机制 301
16.3.2 项目测试 303
附录A HBase热门问题集锦 308

教学资源推荐
作者: 石彦芳 李丹 主编 赵占坤 赵滨 薛玉倩 副主编 周檬 苏默 高秀艳 石建国 参编
作者: Philip M. Lewis, Arthur Bernstein, Michael Kifer
作者: Abraham Silberschatz, Henry F.Korth, S.Sudarshan
参考读物推荐
作者: 赵雪 胡可 王建强 等编著
作者: 谢星星 朱婵 编著
作者: Thomas Kyte
作者: 陈畅亮 吴一晴 著