Hbase(四)MR on Hbase & Hbase的 架构
七、HBase 读写流程
读流程
HBASE读数据流程
1 客户端先访问ZK 从meta表读取Region的位置
2 根据相关信息获取到Regiog所在的位置
3 找到Region对应的RegionServer
4 查找对应的Region
5 在对应的节点中区获取数据(如果MemStore没有刷新,则先从内存中获取数据,如果没有则向HFile中获取数据)
写流程
(1)Client 向HRegionServer发送请求
(2)HRegionServer写入数据到HLog中
(3)HRegionServer写入数据MemStore中
(4)向Client反馈写成功
HBase写数据流程
1 Client首先访问zookeeper,从meta表获取相应region信息,然后找到meta表的数据
2 根据namespace、表名和rowkey根据meta表的数据找到写入数据对应的region信息
3 找到对应的regionserver
4 把数据分别写到HLog和MemStore上一份
4 MemStore达到一个阈值后则把数据刷成一个StoreFile文件。(若MemStore中的数据有丢失,则可以从HLog上恢复)
5 当多个StoreFile文件达到一定的大小后,会触发Compact合并操作,合并为一个StoreFile,(这里同时进行版本的合并和数据删除。)
6 当Storefile大小超过一定阈值后,会把当前的Region分割为两个(Split),并由Hmaster分配到相应的HRegionServer,实现负载均衡
献给每一个正在努力的我们,就算在忙,也要注意休息和饮食哦!我就是我,一个在互联网跌跌撞撞,摸爬滚打的热忱,给个三连吧~