HBase 写流程
- 向zk /hbase/meta-region-server,获取hbase:meta表所在的RegionServer节点。
- 向RegionServer节点获取hbase:meta内容,根据Rowkey 设计规则 对比,找到对应的RS节点和对应的Region
- 将请求发送给对应的RS节点, 先写Hlog,再写对应的region列族的store的memstore
- memstore容量超过阈值,会异步flush,将内存数据写入文件,为storefile(hfile)
HBase 读流程
- 向zk /hbase/meta-region-server,获取hbase:meta表所在的RS节点
- 向RS节点获取hbase:meta内容,根据查询的Rowkey,去meta找到对应的
RS节点和Region,缓存到本地 - 将读请求进行封装,发送给目标的RS节点进行处理,先到memstore中查数据,
查不到再去blockcache查询,再查不到就到HFILE文件读取数据。
读流程更加复杂因为
1 一次可能查询多个region,多块的blockcache ,甚至多个HFILE
2 put --update version (多版本) 过滤到最新的
deleted 数据 要去除掉已删除的数据