HBase(八)Region 合并操作

Region的合并不是为了性能, 而是出于便于运维的目的 .

比如删除了大量的数据 ,这个时候每个Region都变得很小 ,存储多个Region就浪费了 ,这个时候可以把Region合并起来,进而可以减少一些Region服务器节点。

下面来看一下如何进行region合并:

通过Merge类冷合并Region

执行冷合并前,需要先关闭hbase集群

创建一张hbase表:

查看表region

file

需求:

通过查看UI界面,需要把test表中的前2个region数据进行合并,分别是:

  1. test,,1620148534743.8222cc22ab4acb18b726b3c6be1cb082.
  2. test,1000,1620148534743.b2e07e8922d0ffa6477ef2d7ff368bba.

这里通过org.apache.hadoop.hbase.util.Merge类来实现,不需要进入hbase shell,直接执行(需要先关闭hbase集群):

成功后可以界面观察分区变化,但是我这里运行找不到主类org.apache.hadoop.hbase.util.Merge。实际上冷合并不常用,因为需要停止集群损耗巨大,工作中更常使用热合并。

通过online_merge热合并Region

不需要关闭hbase集群==,在线进行合并

与冷合并不同的是,online_merge的传参是Region的hash值,而Region的hash值就是Region名称的最后那段在两个.之间的字符串部分。

需求:需要把test表中的2个region数据进行合并:

  1. test,2000,1620148534743.68216f0389235352165d3b884db24b95.
  2. test,3000,1620148534743.c85c37595f74abb8eb0276c50bf700e6.

需要进入hbase shell:

成功后观察界面

file

Views: 13