1、HBase 架构

HBase 是一个开源的面向列的分布式数据库,它是基于 Apache Hadoop 的 NoSQL 数据库。它支持非常大的数据集,可以容忍硬件故障,且可以提供高吞吐量读取和编写操作。

HBase 架构由一个主节点(HMaster)和多个工作节点(RegionServer)组成,它们都是在 Hadoop 集群上运行的。HMaster 负责管理 RegionServer,负责分区表,分配 RegionServer,监控 RegionServer,处理 RegionServer 的故障,以及其他管理任务。RegionServer 负责存储和管理数据,处理客户端的读写请求,以及其他的工作任务。

2、HBase 数据存储

HBase 使用 Hadoop 的文件系统(HDFS)作为存储介质,数据以表的形式存储在 HDFS 文件系统中。表由一个或多个列族组成,每个列族又由一个或多个列组成,每个列存储一个值。表中的每一行都有一个行键,用于唯一标识行。

3、HBase 分片

HBase 使用分片的方式来存储数据,将表拆分为若干个 Region,每个 Region 由一个或多个表页(HFile)组成,每个表页都有一个表页键,用于唯一标识表页。

每个 Region 都有一个起始行键和结束行键,用于表示 Region 的范围,每个 Region 都由一个 RegionServer 管理,当表中的数据量增加时,HBase 会自动将 Region 分裂成两个新的 Region,以确保 Region 的大小不超过预设的大小。