首页 > 代码库 > HBase 的存储结构

HBase 的存储结构

HBase 的存储结构

HBase 中的表常常是超级大表,这么大的表,在 HBase 中是如何存储的呢?

HBase 会对表按行进行切分,划分为多个区域块儿,每个块儿名为 HRegion

技术分享

HBase 是集群结构,会把这些块儿分散存储到多个服务器中,每个服务器名为HRegionServer

技术分享

服务器多了,就需要一个管理者 HMaster,负责 HRegion 的分配、HRegionServer 负载均衡的处理 等事务

技术分享

当某个 HRegion 的大小达到阈值后,便会被分割开来,新的 HRegion 也会由 HMaster 进行分配,放置到合适的 HRegionServer 中

HRegion 是 HBase 中分布式存储的最小单元,但并不是存储的最小单元

HRegion 内部会按照列族进行切分,分为多个 Store,每个 Store 保存一个列族,所以 HRegion 由一个或者多个 Store 组成

技术分享

每个 Strore 又由一个 MemStore 和 N个 StoreFile 组成

MemStore 是内存存储单元,当内存中数据达到阈值后,写入 StoreFile,StoreFile 以 HFile 格式保存

技术分享

HBase 数据的物理存储是基于 Hadoop 的分布式存储的

技术分享

这样,综合起来便形成了 HBase 的整体架构图


技术分享

HBase 的存储结构