分享

hbase合并region

yuwenge 发表于 2017-3-8 13:35:39 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 13875
假设你的table有10个region,他们的名字分别为1,2...10

Hbase 并没有提供直接合并 2-8这7个region的方法,如果你要合并多个region,那要稍微麻烦一点,具体方法如下

首先使用Hbase shell自带的merge_region方法:

Merge two regions. Passing 'true' as the optional third parameter will force
a merge ('force' merges regardless else merge will fail unless passed
adjacent regions. 'force' is for expert use only).


NOTE: You must pass the encoded region name, not the full region name so
this command is a little different from other region operations.  The encoded
region name is the hash suffix on region names: e.g. if the region name were
TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396. then
the encoded region name portion is 527db22f95c8a9e0116f0cc13c680396


Examples:


  hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'
  hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME', true
使用merge_region方法合并多个region后会生成新的region,但是会有2个问题

1:overlap(hbase metadata信息没做处理)

2:hdfs上的region信息没做处理

解决这两个问题可以使用hbase hbck命令,举例:

hbase hbck ssp_rt -fixHdfsOverlaps -maxMerge 100 -fixMeta -fixAssignments
这个命令会合并hbase metadata中overlap的region并且删除hdfs上相应的文件

已有(3)人评论

跳转到指定楼层
nextuser 发表于 2017-3-9 10:24:23
Mr.k 发表于 2017-3-9 09:11
hbase合并region的目的是什么

看下这个帖子
hbase region导致磁盘Io过高,CPU 使用率过高,如何解决
http://www.aboutyun.com/forum.php?mod=viewthread&tid=21185


回复

使用道具 举报

Mr.k 发表于 2017-3-9 09:11:23
hbase合并region的目的是什么
回复

使用道具 举报

醉半城 发表于 2017-3-9 10:22:44
合并期间会无法提供查询服务吧?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条