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问题修复