感谢张老师的回复,我们后续对这张大表按照您的建议操作一下,再观察观察是否还有此类问题。然后我们之前也是由于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修复的方式是否有误?