Hbase读写原理及三大机制

本文深入探讨HBase的读写流程、物理存储结构和三大核心机制:memstore flush、StoreFile compact和Region split。HBase读操作通过Zookeeper定位Meta表,找到数据所在Region;写操作先写入HLog,再写入Memstore,达到阈值时生成StoreFile。HBase利用Region分发数据,每个Region包含Store,由memStore和StoreFile组成。此外,文章还介绍了bulkload批量加载数据到HBase的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HBase架构原理

在这里插入图片描述

HBase读写流程

Client对HBase读写请求,跟HMaster没有任何关系,客户端只需要知道Zookeeper的地址即可
HBase中有一张非常重要的表—Meta表,存储了HBase所有的表、所有的Region的详细的信息,比如Region开始的key,结束的key,所在Regionserver的地址。Meta表就相当于一个目录,通过它可以快速定位到数据的实际位置,而zookeeper中恰好存储了meta表的region信息,所以先从zookeeper中找到meta表region的位置,然后读取meta表中的数据。meta中又存储了用户表的region信息。,因此读写数据,只需要跟Zookeeper对应的Regionserver进行交互就可以了。
查看meta表信息
hbase(main):011:0> scan ‘hbase:meta’
1.HBase写数据流程

  1. Client先访问zookeeper,找到Meta表位于哪个Region Server,并去访问获取Meta表数据。
  2. 根据读请求的 namespace:table/rowkey,查询出目标数据位于哪个 Region Server 中的哪个 Region 中。并将该 table 的 息以及 meta 表的位置信息缓存在客户端的 meta cache,方便下次访问。
  3. Client向该HRegionServer服务器发起写入数据请求,然后HRegionServer收到请求并响应。
  4. Client先把数据写入到HLog,以防止数据丢失**。然后将数据写入到Memstore**。如果HLog和Memstore均写入成功,则这条数据写入成功。
    写流程图:
    在这里插入图片描述

2.Hbase读数据流程

  1. 首先Client先去访问zookeeper,从zookeeper里面获取meta表所在的位置信息,即找到这个meta表在哪个HRegionServer上保存着。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值