HBase读写操作流程介绍

HBase读写操作

读和写是Hbase的两种常见的基本操作,这两种操作都会涉及到Hfile和Meta表,我们依次看看

Hfile

HFile是Hbase在HDFS中存储数据的格式,它有如下特性:

  • 主标识是一个行健
  • key按照有序的方式进行存储
  • HFile仅仅分配给一个Region
  • 行存储在Hfile上面,通过排好序的KeyValue存储在磁盘上
  • 当MemStore超过它的限制的时候,会新产生一个HFile
  • 在搜索数据的时候,不需要加载整个Hfile,可以使用Hfile的多层索引
  • HDFS复制WAL和Hfile块,并且这是自动的
  • 在每个Hfile中,最高的***被存储为meta Field

Meta表

在读数据的时候,Hbase需要知道要访问那个Region Server,因此在读数据的时候需要通过Meta表。

  • Meta表也是一张Hbase的表,但是内部是一系列Region的信息
  • 它的结构如下:
    • Key:Region起始的key,Region Id
    • Value: RegionServer信息

首次读写

  1. 首先到ZooKeeper中找到meta表对应的Region Server地址
  2. 客户端再去RegionServer中,从meta表中获取对应rowkey位于哪个RegionServer上,客户端会缓存这个信息还有meta表的信息。
  3. 客户端从对应的RegionServer找到row。

后续的读过程,客户端会直接从之前缓存的Meta表中检索。

 

HBase读写操作流程介绍

image.png

HBase读写操作流程介绍

image.png

参考

HBase Operations: Read and Write Operations
HBase原理-数据读取流程解析
An In-Depth Look at the HBase Architecture
图解Hbase读取流程
一条数据的HBase之旅,简明HBase入门教程-Write全流程