HBase 一致性检查与修复

Posted changingworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase 一致性检查与修复相关的知识,希望对你有一定的参考价值。

HBase 不一致表现为:

region不一致:当一个region被分配到多个regionserver或者没有regionserver持有该region时,则产生region不一致;

表不一致:当某个表的多个region行键有重叠时出现表不一致。

一致性检查:

hbase hbck

# Status:OK,表示没有发现不一致问题。

# Status:INCONSISTENT,表示有不一致问题。

一致性修复:

注意:region不一致可以在线修复,表不一致修复起来比较复杂,需先停止HBase的读写操作。

不正确的分配  这是由于.META.表里保存了region的错误信息。有三种可能:region被分配给了多个regionserver,region被错误的分配给了一

个regionserver但却由另一个regionserver提供服务,region存在于.META.中但没有被分配给任何regionserver。这种不一致通过如下命令修复

hbase hbck -fixAssignments

失踪或多余的region  如果HDFS保存了.META.表里没有记录的region,或者.META.里保存了HDFS中没有的region,则出现不一致,则通过如下命令修复

hbase hbck -fixMeta

修复region不一致的风险比较低,可以通过如下命令打包运行

hbase hbck -repairHoles

region 元数据丢失  每个region持有一个.regioninfo 如果该文件丢失,且.META.表里也没有保存该region的记录,则使用如下命令收集

一个丢失的.regioninfo文件的region

hbase hbck -fixHdfsOrphans

修复表不一致比较复杂,需仔细阅读在线文档,根据实际情况处理,且需要现在测试环境下进行充分的实验。


以上是关于HBase 一致性检查与修复的主要内容,如果未能解决你的问题,请参考以下文章

数据库置疑之后修复完,用 dbcc checkdb(数据库名) 检查数据的时候提示有一致性错误

如何利用percona-toolkit工具检查MySQL数据库主从一致性以及修复

MySQL主备库数据一致性校验及修复

Hbase--Hadoop关于Hbase副本解疑

HBase可用性分析与高可用实践

ESLint 配置说明