hbase的合并是为了在数据被大量删除的时候,产生很多的小的region,合并region,可以减少一些region服务节点
1. 通过Merge类冷合并region
1.创建hbase分区表
create "test:t1","f1",SPLITS=>['1000','2000','3000']
2.进入hbase的web页面查看分区情况
image.png3. 退出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
网友评论