Hbase读写流程

一、hbase的读操作:
  ZooKeeper---meta--regionserver--region--memstore--storefile
  1、首先从zookerper找到meta表的region的位置,然后读取meta表中的数据。而meta中又存储了用户表的region信息
  2、根据namespace、表名和rowkey根据meta表中的数据找到写入数据对于的region信息
  3、然后找到对于的regionserver
  4、查找对应的region
  5、先从Memstore找数据,如果没有,再到StoreFile上读

  

 

二、hbase的写操作:
  ZooKeeper---meta--regionserver--1、Hlog 1、MemStore--storefile
  1、首先从zookerper找到meta表的region的位置,然后读取meta表中的数据。而meta中又存储了用户表的region信息
  2、根据namespace、表名和rowkey根据meta表中的数据找到写入数据对于的region信息
  3、然后找到对于的regionserver
  4、把数据分别写到Hlog和memstore各一份
    4、1当memstore达到阈值后把数据刷成一个storefile文件,当compact后,逐渐形成越来越大的storefile后触发spilt,
把当前的StoreFile分成两个,这里相当于把一个大的region分割成两个region
    4、1若MemStore中的数据有丢失,则可以从HLog上恢复,当多个StoreFile文件达到一定的大小后,会触发Compact合并操作,
合并为一个StoreFile,这里同时进行版本的合并和数据删除

  

 

posted @ 2019-02-22 10:39  xiaolaotou  阅读(10237)  评论(1编辑  收藏  举报