HBase的读写流程

HBase的读流程

  1. 客户端从zk获取.META.表所在的regionserver;
  2. 去对应的regionserver读取.META.表,获取region所在信息(region在哪个regionserver上保存的信息);
  3. 客户端到了regionserver时,先找到region,先去在Block Cache(读缓存)中读取数据,如果读取到了数据就返回;
  4. 如果在Block Cache中没读取到数据,就去MemStore 和 Store File(HFile)中查询目标数据,并将Store File中的数据先写入Block Cache将Block Cache和MemStore中查到的所有数据进行合并。此处所有数据是指同一条数据的不同版本(time stamp)或者不同的类型(Put/Delete);
  5. 将合并后的最终结果返回给客户端。

注意HBase上 RegionServer 的内存分为两个部分,一部分作为 MemStore ,主要用来写;另外一部分作为 BlockCache ,主要用于读数据;

HBase的写流程

在这里插入图片描述

  1.  客户端从ZK获取到存放.META.表的regionserver;
  2. 客户端从对应的regionserver上获取META.表的信息。并从获取的信息中,找到写数据对应的regionserver,也就是put请求发送到哪台regionserver上;
  3. 客户端找到对应的regionserver,先将数据写入到HLog中,数据和相应的操作都写入HLog中;
  4. 再去region中,将数据写入到MemStore中,当MemStore中的数据到达阈值时,就将它的数据写入到缓冲队列,由缓冲队列写入到HFile中
  5. HFile会将小文件进行合并,防止文件存放到HDFS上时,namenode上的元数据过于臃肿。它也会将过大的文件进行拆分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值