小米和网易两位资深工程师联合编写的 HBASE 原理与实践 PDF
前言
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 数据库的基础理论与开发运维。
目录
主要内容
第 1 章 HBase 概述;本章作为全书的开篇,将从 HBase 的历史发展、数据模型、体系结构、系统特性几个方面,向读者介绍这位主角。
1.1 HBase 前生今世
1.2 HBase 数据模型
1.3 HBase 体系结构
1.4 HBase 系统特性
第 2 章基础数据结构与算法;本章将介绍 HBase 的核心数据结构,主要包括跳跃表、LSM 树和布隆过滤器。同时,为了使读者加深印象,我们设计了一个轻量级 KV 存储引擎 MiniBase°,并提供了一些相关的编程练习。
2.1 跳跃表
2.2 LSM 树
2.3 布隆过滤器
2.4 设计 KV 存储引|擎 MiniBase
第 3 章 HBase 依赖服务;
3.1 ZooKeeper 简介
3.2 HBase 中 ZooKeeper 核心配置
3.3 HDFS 简介
3.4 HBase 在 HDFS 中的文件布局
第 4 章 HBase 客户端;
4.1 HBase 客户端实现
4.2 HBase 客户端避坑指南
第 5 章 RegionServer 的核心模块;本章将对 RegionServer 进行分解,并对其中的核心模块进行深入介绍。需要注意的是,本章对于模块的介绍仅限于分析其核心作用、内部结构等,而对其在整个 HBase 的读写流程中所起的作用并不展开讨论,第 6 章介绍 HBase 的写人读取流程时将会用到这些模块。
5.1 RegionServer 内部结构
5.2 HLog
5.3 MemStore
5.4 HFile
5.5 BlockCache
第 6 章 HBase 读写流程;
6.1 HBase 写入流程
6.2 BulkLoad 功能
6.3 HBase 读取流程
6.4 深入理解 Coprocessor
第 7 章 Compaction 实现;
7.1 Compaction 基本工作原理
7.2 Compaction 高级策略
第 8 章负载均衡实现;
8.1 Region 迁移
8.2 Region 合并
8.3 Region 分裂
8.4 HBase 的负载均衡应用
第 9 章宕机恢复原理;本章重点介绍 HBase 中 RegionServer 常见故障分析、故障恢复基本原理、宕机之后数据恢复流程等。
9.1 HBase 常见故障分析
9.2 HBase 故障恢复基本原理
9.3 HBase 故障恢复流程
9.4 HBase 故障时间优化
第 10 章复制;
10.1 复制场景及原理
10.2 串行复制
10.3 同步复制
第 11 章备份与恢复;
11.1 Snapshot 概述
11.2 Snapshot 创建
11.3 Snapshot 恢复
11.4 Snapshot 进阶
第 12 章 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
第 13 章 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 写入性能调优
第 14 章 HBase 运维案例分析;
14.1 RegionServer 宕机
14.2 HBase 写入异常
14.3 HBase 运维时问题分析思路
第 15 章 HBase 2.x 核心技术;
15.1 Procedure 功能
15.2 In Memory Compaction
15.3 MOB 对象存储
15.4 Offheap 读路径和 Offheap 写路径
15.5 异步化设计
第 16 章高级话题;本章将介绍 HBase 的几个高级话题。二级索引是开发者常用的一个数据库功能,但是社区版本 HBase 并不支持二级索引功能,本章将提供一些常用的设计二级索引的思路。事务是数据库系统值得讨论的一个核心功能,HBase 目前仅支持单行事务,不支持多个分区之间的跨行事务,本章将给出跨行事务的设计思路。最后介绍 HBase 的社区运作机制以及 HBase 开发和测试相关内容,希望对参与社区建设感兴趣的读者有所裨益。
16.1 二级索引
16.2 单行事务和跨行事务
16.3 HBase 开发与测试
需要这份【HBASE 原理与实践】328 页技术文档的小伙伴,可以转发此文关注小编后,**点击这里,获得文档领取方式**
大牛对本文的高度评价
希望本文能够帮助到广大开发人员的学习,也希望本文能够得到大家的喜欢,多多转发让更多的人受益,多多关注每天更新技术好文!
评论