hbase最佳实践之region在线合并

  性能相关
内容纲要

概要说明

相比region拆分,合并region的使用场景比较有限,最典型的一个应用场景是:在某些业务中本来接收写入的region在之后很长时间都不再接收任何写入,而且region上的数据因为TTL过期被删除。

这种场景下的region实际上没有任何存在的意义,称为空闲region,一旦集群中空闲region很多,就会导致集群管理运维成本增加。

此时可以使用合并功能将这些region与相邻的region合并,减少集群中空闲region的个数。
介绍两种 merge_region 的操作:

  1. hbase 最佳实践之 region 在线合并
  2. hbase 最佳实践之 region 离线合并

详细说明

  1. hyperbase 服务不需要停止;
  2. HMaster 和 regionserver 都参与在线 region 的合并过程;
  3. 在线合并 region 可以手动通过 hbase shell 执行 merge_region 命令,或者使用 DSTools 中的 mergeRegion.sh 脚本;
  4. merger_region 只能合并 相邻 的两个 region,如果是非相邻的需要加第三个参数 true,但是不建议这么操作;
  5. 控制好集群内 region 数量,保证 merge 完之后的 region 上线后,尽量不超过 1000g个region,每个 RS 节点;

具体操作

hbase 表和 hyperdrive 表的操作都是一样的。本文档以 hbase 表 hbase_merge_test 为例演示在线合并 region 的过程。

1、查看hyperbase表的原始状态

通过active HMaster的60010页面,查看 hbase_merge_test 表合并前有7个region,本次在线合并7548f41d729a72f50aae0b9d3244f10f 和 c16258a84e89200f0b5ce2c7c90ce2cc 两个region;

file

2、通过hbase shell命令在线合并region
  • 本案例中描述通过 hbase shell命令在线合并region。
  • 在线合并的传参是region的hash值,就是页面上最后两个 . 之间的字符串部分,也可以根据hdfs数据目录下的文件名(/hyperbase1/data/default/<表名>)来判断。
    file
merge_region '7548f41d729a72f50aae0b9d3244f10f','c16258a84e89200f0b5ce2c7c90ce2cc'

3、在线合并完成后检查表是否正常

合并完之后再次查看60010页面region信息,已经显示是最新的,合并后的region数为6。
file

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。