第一次尝试修复Hbase2出现Region不一致,HBCK2

本文讲述了在Hadoop集群中,面对磁盘损坏导致HBase region不一致的问题,如何通过HBCK2工具进行修复,包括释放锁定的producer、重新分配region、定位并修复HDFS坏块的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现问题的原因

Hadoop中报错,集群中某节点的一块磁盘损坏了,运维修复后,hbase出现了region不一致的情况。

修复HBCK2

  1. 首先查看web ui中被lock的producer,先释放父region使用bypass -or pid,再释放子producer使用bypass -o id

  2. 查看home界面拿到regionId,对其重新分配assigns -o

  3. 最后还是会剩余一些region无法修复,因为是磁盘损坏了,查看HDFS文件是否坏块hdfs fsck -list-corruptfileblocks,发现有大量的坏块,过滤一下hdfs fsck -list-corruptfileblocks |grep hbase,存在hbase的坏块,所以就需要修复或清除坏块,

  4. 修复HDFS坏数据 hdfs debug recoverLease -path 路径 -retries 重试次数

hdfs debug recoverLease -path /hbase_v3/data/default/table_name/78767936d6944f611fcde45bfd78119e/S/096345440ac549fcbac3d767431941ed   -retries 5

命令:

bypass:-o id -or pid
hbase hbck -j hbase-hbck2-1.1.0-SNAPSHOT.jar bypass -or 205426
hbase hbck -j hbase-hbck2-1.1.0-SNAPSHOT.jar bypass -o 432521
assigns: 可以加-skip跳过版本检查
hbase hbck -j hbase-hbck2-1.1.0-SNAPSHOT.jar assigns -o 835955c88c1f999b3fa7ec7f4eef92bf

如果无法修复,看情况进行删除

hdfs fsck / -delete  # 删除HDFS坏块,会将所有坏块全部删除

我先将坏块的region get下来了,然后执行删除坏块后hbase就好了,不好的话可以执行assigns等操作尝试。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值