hbase的region的合并

2020-07-28  本文已影响0人  程序员的交流电

hbase的合并是为了在数据被大量删除的时候,产生很多的小的region,合并region,可以减少一些region服务节点

1. 通过Merge类冷合并region

1.创建hbase分区表

 create  "test:t1","f1",SPLITS=>['1000','2000','3000']

2.进入hbase的web页面查看分区情况

image.png

3. 退出habse集群

很多人没有注意,只是退出了hbase的cli,直接的执行了冷合并,会报错,最后会提示hbase应该要关闭

2020-07-28 19:44:14,362 INFO  [main] client.ConnectionManager$HConnectionImplementation: Closing zookeeper sessionid=0x10003e6d2af000f
2020-07-28 19:44:14,380 INFO  [main] zookeeper.ZooKeeper: Session: 0x10003e6d2af000f closed
2020-07-28 19:44:14,381 INFO  [main-EventThread] zookeeper.ClientCnxn: EventThread shut down
2020-07-28 19:44:14,392 FATAL [main] util.Merge: HBase cluster must be off-line, and is not. Aborting.

退出hbase的集群命令

stop-hbase.sh

4.执行冷合并的命令

执行完成之后,查看日志是否有报错的地方

hbase org.apache.hadoop.hbase.util.Merge test:t1  \
test:t1,,1595935760205.bd7b8d7090c964d840f673c4a8e6167d.  \
test:t1,1000,1595935760205.1189ad931f01a5d3b73beda780551a46.

5.执行完成之后启动hbase集群

到hbase的web页面查看端口是16010,执行成功,把之前的前两个region进行了合并


2.通过online_merge热合并region

这里热合并的意思指的是不需要关闭集群,进行region的合并
和冷合并直接的复制web界面上面的region的name不一样,热合并使用的是region的hash值,而region的hash值就是name中级的一段。

merge_region '56f8478224a72e2e90239fe0ced64afd','45e8eb226d0327da8c106991d8d7212a'

执行完成之后,进入web界面查看


image.png
上一篇下一篇

猜你喜欢

热点阅读