2.1 上的代码我记的不太清楚了,不过 region assign 相关 procedure 在 2.2 重新写了一遍,之前确实有 bug
很难搞定,常见的就是 region 不下线,或者一个 region 被 assign 到两台 RS 上,只能重启搞定。另外后来又在 2.3 上把存储
procedure 的部分重新实现了一遍,才算比较稳定。

所以 2.1 在大集群特别是有些过载的情况下跑 merge 确实有可能出 bug,hbck 的处理没啥问题,也只能这样搞。。。

邢* <xingxuem...@163.com> 于2023年3月31日周五 15:15写道:

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