小记--------hbase数据库读写流程

Posted yzqyxq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小记--------hbase数据库读写流程相关的知识,希望对你有一定的参考价值。

  1. hbase读写流程

读过程

  1. client先从缓存中定位region位置,如果缓存中没有region位置,则从zookeeper的-ROOT-表,获取-ROOT-所在regionserver位置
  2. 通过查询-ROOT-的region服务器获取含有.META.表所在regionserver地址
  3. Client会将保存着regionserver位置信息的元数据表.META.进行缓存,然后在表中确定待检索rowkey所在regionserver信息。
  4. Client会向在.META.表中确定的regionserver发送真正的数据读取请求
  5. 先从memstore中查找,如果没有再到storefile中查找

 

写过程

  1. client先从缓存中定位region,如果缓存中没有region位置信息则需要访问zookeeper,从.META.表获取要写入的region信息
  2. 找到小于rowkey并且最接近rowkey的startkey对应的region
  3. 将更新的数据首先写入WAL(HLog)防止中途发生宕机也可以通过WAL还原初始数据
  4. 将更新写入memstore中,当memstore的大小达到设定的flush memstore的阈值时,会触发flush memstore操作,把memstore的数据写入到hdfs,生成一个HFile文件
  5. 随着HFile文件的不断增多,当达到一定的阈值之后,触发Compact合并操作(分为两种minor Compaction、major Compaction)
  6. HFile文件通过不断的compact合并操作,逐步形成越来越大的storefile
  7. 当单个storefile大小超过一定的阈值后,触发split操作,把当前的region拆分为两个,新拆分的region会被hbase master分配到相应的两个regionserver上

以上是关于小记--------hbase数据库读写流程的主要内容,如果未能解决你的问题,请参考以下文章

HBase 数据读写流程

HBase 数据读写流程

Hbase- Hbase客户端读写数据时的路由流程

大数据(5b)HBase架构读写流程

HBase 架构详解及数据读写流程

15-Hbase深入理解数据读写流程数据刷写合并切分和表设计原则