Hbase - hbase hbck介绍
原文地址:https://bbs.huaweicloud.com/blogs/353332
HBaseFsck(hbck)是一种命令行工具,可检查hbase集群的region一致性和表完整性的问题,同时可以修复损坏的集群数据
hbase hbck [options]
options:
- -fixAssignments
- -fixMeta
- -fixHdfsHoles
- -fixHdfsOrphans
- -fixTableOrphans
- -fixhdfsOverlaps
- -sidelineBigOverlaps -maxOverlapsToSideline <N>
- -fixReferenceFiles
- -repair
-fixAssignments
使用场景:region不在线
hbck报错:
ERROR: Region { meta => null, hdfs => hdfs://hacluster/hbase/data/default/xxxxxxxx/xxxxxxxxxxxxx, deployed => , replicaId => 0 } on HDFS, but not listed in hbase:meta or deployed on any region server
Tips:修复前,可以先检查下表region是否连续,如果连续,执行命令修复后,可能出现overlaps问题。
-fixMeta
使用场景:Meta表数据异常
hbck报错:
ERROR: Region { meta => XXXXXXXXXXX,4150,1634403123676.xxxxxxxxxxxxxxxxxxx., hdfs => null, deployed => , replicaId => 0 } found in META, but not in HDFS or deployed on any region server.
Tips:命令一般可以结合-fixAssignments一起使用:hbase hbck -fixMeta -fixAssignments tableName
-fixHdfsHoles
使用场景:Region不连续,中间存在空洞
hbck报错:
ERROR: There is a hole in the region chain between 5980 and 6000. You need to create a new .regioninfo and region dir in hdfs to plug the hole.
Tips:执行修复前,先查看是否有region不在线,如果有则先使用-fixAssignments修复
-fixHdfsOrphans
使用场景:表regioninfo丢失
hbck报错:
ERROR: Orphan region in HDFS: Unable to load .regioninfo from table XXXXXX
in hdfs dir hdfs://hacluster/hbase/data/default/ XXXXXX /xxxxxxxxxxxxxxx! It may be an invalid format or version file. Treating as an orphaned regiondir.
Tips:丢块、人为删除,都可能导致该问题,多修复几次。
-fixTableOrphans
使用场景:表tableinfo丢失
hbck报错:
TableInfoMissingException: No table descriptor file under hdfs://hacluster/hbase/data/default/XXXXXXX
Tips:丢块、人为删除,都可能导致该问题,一般都会修复失败,可以在相同版本集群建同名表,复制tableinfo进行恢复。
-fixhdfsOverlaps
使用场景:Region之间出现重叠的情况
hbck报错:
ERROR: (region XXXXXX,994,1599460846542.xxxxxxxxxx.) Multiple regions have the same startkey: 994
ERROR: (region XXXXXX,994,1599543035805.xxxxxxxxxx.) Multiple regions have the same startkey: 994
ERROR: (regions XXXXXX,994,1599543035805.xxxxxxxxxx. and XXXXXX,998,1571500798247.xxxxxxxxxx.) There is an overlap in the region chain.
Tips:一般一次修复不成功,需要多执行几次。该修复可能影响业务(修复过程,会把重叠的region下线,合并为1个region)。
-sidelineBigOverlaps -maxOverlapsToSideline <N>
使用场景:
sidelineBigOverlaps:修复overlap问题过程中,允许跟其他region重叠次数最多的一些region不参与(修复后,可以把没有参与的数据通过bulk load加载到相应的region;maxOverlapsToSideline修复overlap问题过程中,一组里最多允许多少个region不参与
hbck报错:暂无
Tips:使用命令 hbase hbck -repair -sidelineBigOverlaps -maxOverlapsToSideline 10 tableName
-fixReferenceFiles
使用场景:修复残留的reference文件
hbck报错:
ERROR: Found lingering reference file hdfs://hacluster/hbase4/data/default/XXXXXX/xxxxxxxxxx/F/3f7f9c436845499eaea025965d6528e3.75b81cdf8bd8e218f581dc274423be1c
Tips:暂无
-repair
使用场景:该命令是多个命令的集合,包含:
- -fixAssignments
- -fixMeta
- -fixHdfsHoles
- -fixHdfsOrphans
- -fixHdfsOverlaps
- -fixVersionFile
- -sidelineBigOverlaps
- -fixReferenceFiles
- -fixTableLocks
- –fixOrphanedTableZnodes
hbck报错:暂无
Tips:一般overlap问题,可以简单粗暴的直接repair
常用修复命令
# 检查hbase是否不一致
hbase hbck>/tmp/hbck.out
tail /tmp/hbck.out
# hbase hbck 常规修复
hbase hbck -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOverlaps > /tmp/hbck.out
# hbase hbck repair修复
hbase hbck -repair
# dstool修复(暂略)
未完待续……
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)