Apache HBase是基于Apache Hadoop构建的一个高可用、高性能、多版本的分布式NoSQL数据库,是Google BigTable的开源实现,通过在廉价服务器上搭建大规模结构化存储集群,提供海量数据高性能的随机读写能力。

阿里巴巴、小米、腾讯、网易、华为、滴滴、快手、中国移动等,都已经把HBase作为极重要的基础设施,很多公司对HBase社区也有长期的投入。

目前在开源社区,能被市场广泛接受的分布式持久化KV存储系统不多,HBase就是其中一款优秀产品。Apache社区开放的生态环境,也使HBase得到了健康的发展,全球各数据库大会和大数据会议上,可以频繁地见到HBase的身影。从HBase整个生态链上来看,我们也可以发现像Phoenix、Omid等各种不同框架都可以建立在HBase之上,用来实现业务在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开发与测试

 

需要这份【HBASE原理与实践】328页技术文档的小伙伴,可以转发此文关注小编后,扫码下方来获取!!!

大牛对本文的高度评价

 

希望本文能够帮助到广大开发人员的学习,也希望本文能够得到大家的喜欢,多多转发让更多的人受益,多多关注每天更新技术好文!