Hbase hbck 运行成功,没有不一致的情况,但有 3 个区域处于过渡状态(3 个区域中有 2 个处于 CLOSED 状态,1 个处于 FAILED_OPEN)状态。(所有三个区域都是一个表的一部分)
由于 HBASE 处于一致状态,因此 Hbase 操作没有问题,但由于区域处于过渡状态,因此我无法运行平衡器。
如何从过渡中删除/移动这些区域。
在发布这个问题之前我尝试了以下命令。
hbase hbck <Table_Name>
hbase hack -fix <Table_Name>
hbase hack -repair <Table_Name>
hbase hbck -fixHdfsHoles -fixHdfsOrphans <Table_Name>
Run Code Online (Sandbox Code Playgroud)
这些地区名称也没有目录
enter code here
hdfs dfs -ls /hbase/data/default/<Table_name> | grep de0efd872dc4b3dca6929213f4fbe582
hdfs dfs -ls /hbase/data/default/<Table_name> | grep ab6a101fb92de7150562664ca841ac0d
hdfs dfs -ls /hbase/data/default/<Table_name> | grep 068a2b30ada2b9a2958b3815b7f32dfc
Run Code Online (Sandbox Code Playgroud)
我能够通过删除与使用 zkCli.sh 受到攻击的特定区域相关的节点来解决该问题
[zkshell:6]删除/hbase-unsecure/region-in-transition/name_of_the_region_which_has_strck
然后我重新启动了 hMaster(没有影响,因为我们为 HMaster 设置了 HA)。
当我运行 sudo -u hbase hbase hack 时,一切都很好并且一致。