HBASE写流程

region

当Region服务器收到写请求的时候,Region服务器会将请求转至相应的Region。

  1. 数据写入到Memstore
  2. Memstore到达一定的阀值的时候,完成对数据的排序
  3. 按照顺序将Memstore中的数据持久化到HFile中

META表

为了定位每个Region所在的位置,就可以构建一张映射表,映射表的每行包含两项内容,一个是Region标识,一个是RegionServer标识等信息,这行就表示Region和Region服务器之间的对应关系,从而就可以知道某个Region被保存在哪个Region服务器中。

MemStore

当Region服务器收到写请求的时候,Region服务器会将请求转至相应的Region。
数据首先写入到Memstore,然后当Memstore到达一定的阀值的时候,完成对数据的排序,然后按照顺序将Memstore中的数据持久化到HFile中。
Memstore存储了最近插入的数据,检索近期插入的数据时,速度相当快,检索时间久的磁盘数据时,速度就会慢些。

store

Store是存储数据的核心,存储的是同一个列族下的数据,每个Store包含有一块MemStore和0个或多个StoreFile。StoreFile是HBase中最小的数据存储单元。

用户写入的数据首先会放入MemStore,当MemStore满了以后会Flush成一个StoreFile(底层实现是HFile), 当StoreFile文件数量增长到一定阈值,会触发Compaction合并操作。

HFile

HFile里面的每个键值对就是一个简单的byte数组。但是这个byte数组里面包含了很多项,并且有固定的结构。

HBase写文件流程

客户端首先访问zookeeper,从meta表得到写入数据对应的region信息和相应的region服务器。
找到相应的region服务器,把数据分别写到HLog和MemStore上一份。
MemStore达到阈值后则把数据刷成一个StoreFile文件。(若MemStore中的数据有丢失,则可以从HLog上恢复)。
当StoreFile文件达到一定的数量后,会触发Compact合并操作,合并为一个StoreFile
当Storefile大小超过一定阈值后,会把当前的Storefile分割为两个(Split分裂)

读流程

客户端先访问zookeeper,从meta表读取Region的信息对应的服务器。
客户端向对应Region服务器发送读取数据的请求
Region接收请求后,先从MemStore找数据,如果没有,再到StoreFile上读取
将数据返回给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值