关于hbase的merge

关于hbase的merge(region合并)

1、region的状态有以下几种

1)OFFLINE

region处于offline状态,not opening

2) OPENING

region处于正在被opened状态

3)OPEN

region处于打开状态,且RS已经通知Master

4) FAILED—OPEN

RS未成功open这个region

5)CLOSING

region处于正在关闭中

6)CLOSED

RS已经关闭RS且通知了master

7)FAILED—OPEN

RS close region失败

8) SPLITTING

RS通知了master当前region正在分裂

9) SPLIT

RS通知master当前region已经完成分裂

10)SPLITTING_NEW

当前region由于split原因,正在被创建中

11)MERGING

RS通知master当前region正在与另一个region合并

12) MERGED

RS通知master当前region已经合并完成

13)MERGING—NEW

当前region正在由两个region合并中

2、merge

当前region 进行merge有两种方式,一种是要停集群的,故不讨论,另一种在线操作的

1)命令

hbase shell中执行

merge_region ‘ENCODED_REGIONNAME’, ‘ENCODED_REGIONNAME’

这里有一个参数,true,强烈建议不要加,一般是相邻两个region合并的,原因是rowkey的连续性。加true就是强制的意思,一般强制了表就会出问题要修的

这个可以在WEB UI上看,就是NAME中的最后一串字符

示例如下:

merge_region ‘2b577fcd3ca0924b9b9160516708eb3d’,‘de3e0904e2e539a0c8a8946cdd796ccc’

2)流程

此项工作master和RS都参与的

client发送merge RPC到master上 -->master移动需要合并的region到负载更重的那台RS上–>master像RS发送merge的请求–>与split类似的流程,region的合并作为本地事务运行在RS上–>新生成一个region,并且状态标记为MERGING_NEW–>将要合并的两个region分别标记为MERGING,然后下线 --> 讲两个老的region的rowkey段添加到新的region上–>在hbase:meta表中删除旧的region添加,新的region–>open新的region,通知master

3)影响

合并期间,在做合并期间对应操作的region不能查询,但是不会数据搬迁,所以时不占带宽的

4)常见问题

1>问题

region长时间处于RIT状态

2>解决思路:

hbase hbck region_name 进行查看情况,具体参见hbase hbck进行修复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值