2021超级热门好文章!小米和网易两位高级工程师共同编写的HBase原理和实践说明文件

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原理与实践】文档来学习的小伙伴,可以查看主页来获取!!!

大牛对本文的高度评价

 

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

资源下载: