这是我参与「第四届青训营 」笔记创作活动的的第9天
课堂内容
HBase基础介绍
- 什么是HBase:NoSQL数据库
- 与关系型数据库的区别:稀疏存储,rowkey索引,按需读列
- HBase数据模型(行键+列族+列名+版本号)
代码实现
- 数据模型的物理结构
- HBase适用场景
- HBase典型应用
- 使用场景
例一例二
例三
例四
- HBase优劣
HBase架构设计
- 整体组件架构
- HMaster:跟别的Master一样的东西
- HMaster的组件
- RegionServer:执行部门
- RegionServer的组件
- zookeeper:这个大家都知道的东西
- ThriftServer:接口
大数据支撑
- HBase在大数据生态的定位:海量结构化数据存储,灵活,精细化
- 水平扩展能力:通过增加RegionServer的数量来实现
- Region热点切分:主要的问题就是分摊负载,我们首先会选择数据量最大的那一部分切成上下两份,从Region到Column Family到HFile到DataBlock,选择DataBlock的中间一块的第一条KV为切点,上下切开。同时这种切分不搬迁数据,只是生成一个新的目录指定到对应的区域。
- Region切分的流程设计
- Region碎片整理:简单讲就是把小块的Region合并,同时保持一个原则Region要求相邻合并。
- Region负载均衡:三种Balancer(按平均数量,按cost,按顺序)
- 故障恢复机制(HMaster):通过zookeeper的从实例节点监听,主实例节点坏了,会重新选主。
- 故障恢复机制(RegionServer):通过zookeeper,HMaster共同调度,主要是找HDFS中的WAL回放数据来实现恢复。
- Distributed Log Split原理:WAL回放的过程,详细看图就行
- Distributed Log Split优化
最佳实战分享
- Rowkey设计优化
- Column Family设计优化
- 参数优化
- ByteTable优势