hbase2.x orphan regions on filesystem(region丢失)问题修复

Posted 总要冲动一次

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase2.x orphan regions on filesystem(region丢失)问题修复相关的知识,希望对你有一定的参考价值。

问题描述:orphan regions on filesystem

可以通过主master web页面的HBCK Report查看

也可以通过hbck2工具查看

# 查看指定表
hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar addFsRegionsMissingInMeta default:tableName
# 查看命名空间下所有表
hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar addFsRegionsMissingInMeta default

问题说明:表目录下存在region未上线问题,也就是说这些region下的数据你是访问不到的,解决方案有两种:
1、使用hbck2修复工具指定region上线
2、使用hbase自带的工具LoadIncrementalHFiles 将region数据加载到表中

解决步骤

方法1、使用hbck2修复工具指定region上线

使用assigns操作将检查出来未上线的region上线,一次可以上线多个region,用空格隔开,如果返回不是[-1],说明上线成功。

hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar assigns e800be33637ef611b3a5fc05f713d8f0

方法2、使用hbase自带的工具LoadIncrementalHFiles 将region数据加载到表中

第一种方法如果失败,可以尝试这个方法,他会将指定region目录下的所有数据导入到指定的表中。

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles "/tmp/hbase-loaddata/e800be33637ef611b3a5fc05f713d8f0/" "tableName"

额外说明下,使用第一种方法时,如果需要上线的region是从其他表拷贝过来的数据目录,在region上线后很容易产生region重叠(region overlap)问题,也就是region范围发生了交叉。https://blog.csdn.net/DraGon_HooRay/article/details/128588922

以上是关于hbase2.x orphan regions on filesystem(region丢失)问题修复的主要内容,如果未能解决你的问题,请参考以下文章

hbase2.x HBCK Report Region Holes & Overlaps问题修复

hbase2.x HBCK Report Region Holes & Overlaps问题修复

HBase2.x源码剖析:HMaster启动过程

130. Surrounded Regions

Surrounded Regions - LeetCode

[LeetCode]Surrounded Regions