HBase的物理模型

本文总阅读量

刚学习了HBase的物理模型,有些心得,记录一下~

一、基本概念

1、region server

HBase是分布式数据库,region server 就是每一个存储数据的节点。

2、region

每一个region server中,按行把大文件分为小文件。一个小文件就是一个region。

二、问题引入

HBase的数据是按列族分开存储的。当一个region server上的列族文件越来越大,那么它插入、查询的速度必然降低。

三、解决方案

当一个列族文件过大时,按行,将文件划分为region。大文件变为小文件,效率就提高了。

四、region过大怎么办

按上面描述,region过大,也会出现插入、查询的速度降低的问题。

解决:

原来的一个region,拆成两个region。

  • 类似于细胞分裂

五、region server过大怎么办

路子和上面相同,分裂为两个region server。

六、举例

原来一个region server中row key的索引是[1,1亿]。
现在分裂为两个region server,增加了一个节点。row key 索引分别是[1,5000万]、[5000万,1亿]。
这在总的索引表中,只有很细微的变化,就保证了存储文件的region不会变的很大(当然,region肯定是有限额的,超过多少,就会分裂)。所以,它就可以保证插入、查询的速度。

七、类比

region的分裂,可以想象成细胞的分裂。

  • 一直专注于一个细胞,细胞一旦太大,性能就变慢了,就裂变成新的小细胞。

八、作用

  • 保证了HBase的快速插入、查询。