本节将对 HBase 的主要运行机制进行简单介绍。
HBase 的物理存储
HBase 表中的所有行都是按照行键的字典序排列的。因为一张表中包含的行的数量非常多,有时候会高达几亿行,所以需要分布存储到多台服务器上。
因此,当一张表的行太多的时候,HBase 就会根据行键的值对表中的行进行分区,每个行区间构成一个“分区(Region)”,包含了位于某个值域区间内的所有数据,如图 1 所示。
图 1 HBase的Region存储模式图
Region 是按大小分割的,每个表一开始只有二个 Region,随着数据不断插入到表中,Region 不断增大,当增大到一个阈值的时候,Region 就会等分为两个新的 Region。当表中的行不断增多时,就会有越来越多的 Region,如图 2 所示。
图 2 HBase的Region分裂示意
Region 是 HBase 中数据分发和负载均衡的最小单元,默认大小是 100MB 到 200MB。不同的 Region 可以分布在不同的 Region Server 上,但一个 Region 不会拆分到多个 Region Server 上。每个 Region Server 负责管理一个 Region 集合。如图 3 所示。