Region的拆分与合并
文章目录
-
-
-
- 一、拆分与合并的目的
-
- 1.拆分
- 2.合并
- 二、Region拆分
-
- 1.自动拆分
- 2.手动拆分
-
- (1).Linux命令行创建
- (2).在HBase命令行里创建
- (3).指定拆分文件
- (4).强制拆分
- 三、Region合并
-
- 1.Minor Compaction
- 2.Major Compaction
- 3.三种触发合并检查的情况
- 4.合并操作
-
-
一、拆分与合并的目的
1.拆分
- 当一个Region大到一定程度,或导致读取效率太低,所以会进行分裂
- HBase可以通过Region Split达到负载均衡
- Region的拆分分为自动拆分与手动拆分
2.合并
- 当删除了大量的数据后,每一个Region都变小了,这时候再分多个Region就太浪费空间,可以将这些Region合并起来
- 合并的主要目的不是为了性能考虑,而是出于维护的目的
二、Region拆分
1.自动拆分
- 在0.94版本之前,使用的拆分策略是.ConstantSizeRegionSplitPolicy,按照固定大小来拆分Region,即当Region的大小超过默认值(通常默认值是10G),Region就会被HBase拆分成两个Region,且是平均分配。
- 0.94版本之后,用到的拆分策略是 IncreasingToUpperBoundRegionSplitPolicy,即这种拆分方法是会随着Region个数变化而变化,比较灵活,具体的计算方法如下:
Math.min(tableRegionCounts ^3 * initalSize,defaultRegionMaxFileSize)
- tableRegionCounts:表在RegionServer上所有Region的总和
- initalSize:如果没有重新定义hbase.increasing.policy.initial.size,它的大小就是Memstore的2倍,也就是128*2M
- defaultRegionMaxFileSize:Region的最大大小,默认是10G
通过计算可以得出,当Region的个数分别为1,2,3时,文件大小的上限分别为256M,2G,6912M。当Region个数大于等于4个,文件大小已经超出10G,所以上限只能是10G
2.手动拆分
(1).Linux命令行创建
hbase org.apache.hadoop.hbase.util.RegionSplitter my_split_table2 HexStringSplit
鹿林465: 能给一下完整的包吗
Daisy1520: 有没有没有前端,是控制台输出的源码呀
m0_58637831: 要是能分享下 安装包 就更好了
语兴数据: 这个问题就比较离谱了
甜甜圈字: 大佬,可以转载吗?