hbase存储原理

本文介绍了HBase的存储原理,包括客户端写入请求如何通过MemStore和Hlog确保数据安全,以及数据如何从MemStore刷入StoreFile并进行合并与split。此外,还详细阐述了HBase的读取过程,从客户端通过Zookeeper找到目标region,再到查询Meta表获取数据的完整流程。HBase数据在物理存储时按顺序写入,并在内存中排序。客户端可以通过配置实现批量提交和调整缓冲区大小来优化性能。

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


Hbase每个cell插入时都会写入时间戳(当前系统时间)来做版本标识,在读取时如果没有指定时间戳,默认取最新时间。Hbase默认保留3个版本数据。


HBase写入原理

1 客户端写入请求-->MemStore同时会写入Hlog,类似于Commit log,做数据恢复用

2 MemStore满足条件后刷入StoreFile

3 StoreFile满足条件后多个storeFile合并成一个大StoreFile

4 storeFile到一定大小后触发split,把当前region split成2个region,当前region下线,新region被HMater分配到HRegionServer上

图 1 一张表有2个列族,红色和黄色,每个列族有2个列,如果有多个版本同一位置会有多个块。

图2 同一个列族的数据会存储在一块

图3 r1:key值,cf1:列族的名字,c1:列名。t1:版本号,value值 

图4 从左到右数据筛选效率越来越底下,最好把重要筛选信息存储在rowkey,可以提交查询性能

 

HBase读数据原理

1 客户端请求到zookeeper,zookeeper根据先查询那台主机管理meta信息,把请求转发到该主机

2 hbase 查询-ROOT-和.META

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值