这是我参与「第四届青训营 」笔记创作活动的的第8天
课程内容
01 适用场景
1.1 HBase的设计理念
- 看来Google的三篇论文还是很有指导意义的,一定要抽时间看一下。
1.2 数据模型
- 结合下面的表格来理解:
-
- 行键:用来索引每一行
- 列族:包含许多列
- 列名:列名
- 版本号:一个列名可以有许多版本值
- 值:列名的值
- 以Json格式理解数据模型
- 物理结构
-
- 仅单个物理文件内有序
1.3 适用场景
- 引擎使用场景
1.4 小结
- 采用存算分离的架构;存储是用hdfs。是CP系统
- HBase是参考BigTable设计的,大数据开篇论文三篇之一
- HBase作为NoSQL分布式数据库与关系型数据库的区别
- HBase的数据模型,逻辑模型和物理模型的理解
- HBase的优缺点
02 架构设计
2.1 HBase架构设计
- HMaster与RegionServer与主从架构相同,主结点负责元数据的管理、作业调度;从节点执行真正的读写服务。
- 将整个Rowkey空间切分成很多段连续的分片,叫做region,交给RegionServer进行服务。
2.2 主要模块设计
- 这些组件是根据HMaster不能的功能进行封装
2.3 小结
- HBase的整体架构,HMaster和RegionServer的功能以及组件
- 依赖Zookeeper,以及它的职责
- ThriftServer 主要职责
03 大数据支撑
3.1 水平扩展能力
- 找中间Block的第一个keyvalue作为分裂的点
3.2 负责均衡策略
3.3 故障恢复机制
- HMaster
- RegionServer
\
\
3.4 小结
- Region的切分和Region碎片整合
- 负责均衡:分布region的数量
- 故障恢复:Zookeeper的恢复机制;HMaster的恢复流程,RegionServer的故障恢复流程
- Distributed Log Split原理和优化
04 最佳实践
4.1 RowKey设计策略
4.2 小结
- Rowkey设计策略,HBase只支持Rowkey索引,所以这个很重要。
\
\