HBase学习
HBase学习
0x01 摘要
本文是一篇HBase学习综述,将会介绍HBase的特点、对比其他数据存储技术、、架构、存储、数据结构、使用、过滤器等。
未完成
0x02 HBase基础概念
2.1 HBase是什么
2.2 HBase相对于RDMBS能解决什么问题
2.3 HBase特点
2.4 HBase与CAP
2.5 HBase使用场景
0x03 HBase架构
0x04 HBase数据模型
4.1 逻辑模型
4.2 物理模型
0x05 HBase容错
0x06 HBase读写流程
6.1 Region定位流程
6.2 写流程
- Client先访问zookeeper,从meta表获取相应region信息,然后找到meta表的数据
- 根据namespace、表名和rowkey根据meta表的数据找到写入数据对应的region信息
- 找到对应的regionserver
- 把数据分别写到HLog(一个RegionServer共用一份)和MemStore(一个Store一份)上一份
- MemStore达到一个阈值后则把数据刷成一个StoreFile文件。(若MemStore中的数据有丢失,则可以总HLog上恢复)
- 当多个StoreFile文件达到一定的大小后,会触发Compact合并操作,合并为一个StoreFile,(这里同时进行版本的合并和数据删除。)
- 当Storefile大小超过一定阈值后,会把当前的Region分割为两个(Split),并由Hmaster分配到相应的HRegionServer,实现负载均衡
6.3 读流程
- Client先访问zookeeper,从meta表读取region的位置,然后读取meta表中的数据。meta中又存储了用户表的region信息。
- 根据namespace、表名和rowkey在meta表中找到对应的region信息
- 找到这个region对应的regionserver
- 查找对应的region
- 先从MemStore找数据,如果没有,再到StoreFile上读(为了读取的效率)。