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

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

    原文作者:Caoyun
    原文地址: https://www.jianshu.com/p/8b457b3191f2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞