学科分类

HBase读写数据流程

数据库最常见的操作就是读写数据,接下来,针对HBase读写数据的流程进行详细介绍。

读数据流程

从HBase中读数据的流程其实就是寻址的流程,具体流程如下:

(1) Client通过ZooKeeper、“-ROOT-”表以及“.META.”表来找到目标数据所在的RegionServer地址(即目标数据所在Region的服务器地址);

(2) Client通过请求RegionServer地址来查询目标数据;

(3) RegionServer定位到目标数据所在的Region,然后发出查询目标数据的请求;

(4) Region先在MemStore中查找目标数据,若查找到,则返回;若查找不到,则继续在StoreFile中查找。

写数据流程

即存储数据,从客户端把目标数据存储到服务器上。具体流程如下:

(1) Client根据行键RowKey找到对应的Region所在的RegionServer;

(2) Client向RegionServer发送提交写入数据的请求;

(3) RegionServer找到目标Region;

(4) Region检查数据是否与Schema一致;

(5) 若Client没有指定版本,则获取当前系统的时间作为数据版本;

(6) 将更新的记录写入预写日志HLog和MemStore中;

(7) 判断 MemStore是否已满,若满则进行flush操作,将数据写入StoreFile文件,反之,则直接将数据存入MemStore。

点击此处
隐藏目录