刚学习了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的快速插入、查询。