感谢张老师的回复,我们后续对这张大表按照您的建议操作一下,再观察观察是否还有此类问题。然后我们之前也是由于region数量太多,手动操作过合并hbase集群的region,但是遇到了hole问题,想再麻烦您帮忙看一下。

 

1、问题描述: 
手动合并两个region后出现hole,在用hbck2修复过程中出现region多分配问题。当时情况表现为hbase集群读写均无问题,但是在另外一个rs上出现了一个多余的region。此region在meta中无数据,hdfs上有目录但regioninfo缺失,且多余region对应的表compact和snapshot会失败,当时是把多余的region的rs上region迁移走,然后对rs进行了重启,重启完成后多余region消失了。

 

 

2、操作过程

合并region命令:

merge_region 
'sdhz_phone_info_realtime,363:2H9S49dd1UNDbnX+3vVj7g==,1627405790553.ba670bd86dc51211e50bf05995f9b8c5.','sdhz_phone_info_realtime,371:1xxhPgZ9BuzE29InP4QrWA==,1627405790553.3f8854e2e437b0469ef735b08e3abd05.'

 

hole问题处理过程:

使用hbck2修复

- 查询不一致原因:hbase hbck sdhz_phone_info_realtime

- 修复元数据:hbase hbck -j hbase-hbck2-1.0.0-SNAPSHOT.jar addFsRegionsMissingInMeta 
default:sdhz_phone_info_realtime

- 重启master

- 重新分配region:hbase hbck -j hbase-hbck2-1.0.0-SNAPSHOT.jar assigns 
23341c80a5bffbbbb8834bf1c6cdcc06

 

多余region问题修复过程:

1. 关闭线上balance

2. 依次move rs-13上的 region

3. 测试迁移后的region是否可用

4. 存在多余region的rs-13重启,重启完成后多余region消失

5. rs-13解除授权,机器下线

 

3、想得到解答的问题:

为什么手动合并region会出问题?

hole问题使用hbck2修复的方式是否有误?








Reply via email to