Hbase读写流程和寻址机制

写操作流程

(1) Client通过Zookeeper的调度,向RegionServer发出写数据请求,在Region中写数据。

(2) 数据被写入RegionMemStore,直到MemStore达到预设阈值。

(3) MemStore中的数据被Flush成一个StoreFile

(4) 随着StoreFile文件的不断增多,当其数量增长到一定阈值后,触发Compact合并操作,将多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除。

(5) StoreFiles通过不断的Compact合并操作,逐步形成越来越大的StoreFile

(6) 单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split2个新的Region。父Region会下线,新Split出的2个子Region会被HMaster分配到相应的RegionServer上,使得原先1Region的压力得以分流到2Region上。

可以看出HBase只有增添数据,所有的更新和删除操作都是在后续的Compact历程中举行的,使得用户的写操作只要进入内存就可以立刻返回,实现了HBase I/O的高机能

读操作流程

(1) Client访问Zookeeper,查找-ROOT-表,获取.META.表信息。

(2) .META.表查找,获取存放目标数据的Region信息,从而找到对应的RegionServer

(3) 通过RegionServer获取需要查找的数据。

(4) Regionserver的内存分为MemStoreBlockCache两部分,MemStore主要用于写数据,BlockCache主要用于读数据。读请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并把读的结果放入BlockCache

寻址过程:client-->Zookeeper-->-ROOT--->.META.-->RegionServer-->Region-->client

Hbase寻址机制

猜你喜欢

转载自www.cnblogs.com/dummyly/p/10099395.html