ApacheHBase是一个基于ApacheHadoop的高可用性、高性能、多版本分布式NoSQL数据库。它是Google BigTable的开源实现。它通过在廉价服务器上构建大规模结构化存储集群,提供了对海量数据的高性能随机读写能力。
阿里巴巴、小米、腾讯、网易、华为、滴滴、葵富、中国移动等都将HBase作为非常重要的基础设施。许多公司也在HBase社区投资了很长一段时间。
目前,在开源社区中,能够被市场广泛接受的分布式持久kV存储系统很少,HBase就是其中的优秀产品之一。Apache社区开放的生态环境也使HBase健康发展。HBase经常出现在世界各地的数据库会议和大数据会议上。从HBase的整个生态链中,我们还可以发现,可以在HBase上构建各种框架,如Phoenix和Omid,以满足SQL和事务方面的不同业务需求。
在网易内部,HBase从最初支持单一的日志存储,发展成为同时支撑各业务部门的上百个不同业务。基于HBase + SSD的存储系统,在实时推荐、实时风控等场景下都得到了很好的应用,对于一般化的场景则更多,例如日志存储、订单存储、用户画像等等。希望本文能帮助读者更深入、系统地了解HBase。
本文从设计的角度对HBase的整个体系架构和各核心组件进行系统的分析和讲解。与此同时,还介绍常用的性能调优策略以及问题诊断的方法和技巧,帮助读者更好地在实际生产环境中实践。
本文由HBase PMC成员与网易资深工程师倾力打造,多位技术专家联袂推荐。深入HBase内核,抽丝剥茧,剖析HBase数据库的基础理论与开发运维。
HBase概述;本章作为全书的开篇,将从HBase的历史发展、数据模型、体系结构、系统特性几个方面,向读者介绍这位主角。
-
1.1 HBase前生今世
-
1.2 HBase数据模型
-
1.3 HBase体系结构
-
1.4 HBase系统特性
基础数据结构与算法;本章将介绍HBase的核心数据结构,主要包括跳跃表、LSM树和布隆过滤器。同时,为了使读者加深印象,我们设计了一个轻量级KV存储引擎MiniBase°,并提供了一些相关的编程练习。
-
2.1跳跃表
-
2.2 LSM树
-
2.3布隆过滤器
-
2.4设计KV存储引|擎MiniBase
HBase依赖服务;
-
3.1 ZooKeeper简介
-
3.2 HBase中ZooKeeper核心配置
-
3.3 HDFS简介
-
3.4 HBase在HDFS中的文件布局
HBase客户端;
-
4.1 HBase客户端实现
-
4.2 HBase客户端避坑指南
RegionServer的核心模块;本章将对RegionServer进行分解,并对其中的核心模块进行深入介绍。需要注意的是,本章对于模块的介绍仅限于分析其核心作用、内部结构等,而对其在整个HBase的读写流程中所起的作用并不展开讨论,
-
5.1 RegionServer内部结构
-
5.2 HLog
-
5.3 MemStore
-
5.4 HFile
-
5.5 BlockCache
HBase读写流程;
-
6.1 HBase写入流程
-
6.2 BulkLoad功能
-
6.3 HBase读取流程
-
6.4深入理解Coprocessor
Compaction实现;
-
7.1 Compaction基本工作原理
-
7.2 Compaction高级策略
负载均衡实现;
-
8.1 Region迁移
-
8.2 Region合并
-
8.3 Region分裂
-
8.4 HBase的负载均衡应用
宕机恢复原理;本章重点介绍HBase中 RegionServer常见故障分析、故障恢复基本原理、宕机之后数据恢复流程等。
-
9.1 HBase常见故障分析
-
9.2 HBase故障恢复基本原理
-
9.3 HBase故障恢复流程
-
9.4 HBase故障时间优化
复制;
-
10.1复制场景及原理
-
10.2串行复制
-
10.3同步复制
备份与恢复;
-
11.1 Snapshot概述
-
11.2 Snapshot创建
-
11.3 Snapshot恢复
-
11.4 Snapshot进阶
HBase运维;本章将会结合笔者多年的生产线运维经验,重点介绍HBase系统在监控报警、性能测试以及业务隔离等多个方面的最佳实践。
-
12.1 HBase系统监控
-
12.2 HBase集群基准性能测试12.3 HBase YCSB
-
12.4 HBase业务隔离
-
12.5 HBase HBCK
-
12.6 HBase核心参数配置
-
12.7 HBase表设计
-
12.8 Salted Table
HBase系统调优;本章内容涵盖了部分调优技能,通过介绍与HBase最相关的调优内容,来介绍部分调优方法和思路,包括GC调优、操作系统调优以及HBase读写性能调优等。
-
13.1 HBase GC调优
-
13.2 G1 GC性能调优
-
13.3 HBase操作系统调优
-
13.4 HBase-HDFS调优策略
-
13.5 HBase读取性能优化
-
13.6 HBase写入性能调优
HBase运维案例分析;
-
14.1 RegionServer宕机
-
14.2 HBase写入异常
-
14.3 HBase运维时问题分析思路
HBase 2.x核心技术;
-
15.1 Procedure功能
-
15.2 In Memory Compaction
-
15.3 MOB对象存储
-
15.4 Offheap读路径和Offheap写路径
-
15.5异步化设计
高级话题;本章将介绍HBase 的几个高级话题。二级索引是开发者常用的一个数据库功能,但是社区版本 HBase并不支持二级索引功能,本章将提供一些常用的设计二级索引的思路。事务是数据库系统值得讨论的一个核心功能,HBase目前仅支持单行事务,不支持多个分区之间的跨行事务,本章将给出跨行事务的设计思路。最后介绍HBase的社区运作机制以及HBase开发和测试相关内容,希望对参与社区建设感兴趣的读者有所裨益。
-
16.1二级索引
-
16.2单行事务和跨行事务
-
16.3 HBase开发与测试
需要这份328页【HBASE原理与实践】文档来学习的小伙伴,可以查看主页来获取!!!
大牛对本文的高度评价
希望本文能够帮助到广大程序员的学习,也希望本文能够得到大家的喜欢,多多转发让更多的人受益,多多关注每天更新技术好文!