日志显示 hbase master 未初始化
2024-08-06 13:53:49,324 INFO [ProcExecTimeout] 分配。AssignmentManager:在失效服务器上发现 0 个开放区域,在未知服务器上发现 240 个开放区域
2024-08-06 04:28:48,632 警告 [master/groot:16000:becomeActiveMaster] master.HMaster: hbase:namespace,,1650003038679.d8ca96dfa7bc436291f544e78688d3bf。不在线;状态={d8ca96dfa7bc436291f544e78688d3bf状态=打开,ts=1722932865164,服务器=hulk.mcloud.com,60020,1722236433701}; ServerCrashProcedures=假。主启动无法继续,处于保持模式,直到区域上线。
还在 hbase shell 中运行命令取消分配并分配但它不起作用
如果没有活动的 master,运行 hbase shell 分配/取消分配将无法工作。
我设法使用 hbck2 修复了这个问题,在这个 Cloudera 帖子中建议。
安装hbck2
wget https://dlcdn.apache.org/hbase/hbase-operator-tools-1.2.0/hbase-operator-tools-1.2.0-bin.tar.gz
tar -xzf hbase-operator-tools-1.2.0-bin.tar.gz
hbck 分配
运行 hbck 分配,区域名称为 hbase:namespace,根据您的情况
d8ca96dfa7bc436291f544e78688d3bf
hbase hbck -j ~/hbase-operator-tools-1.2.0/hbase-hbck2/hbase-hbck2-1.2.0.jar assigns d8ca96dfa7bc436291f544e78688d3bf
检查主日志:如果您看到
assignment.AssignmentManager: Failed
,然后是 set override to by-pass state checks
,请使用 --override 标志忽略其他过程锁。
hbase hbck -j ~/hbase-operator-tools-1.2.0/hbase-hbck2/hbase-hbck2-1.2.0.jar assigns d8ca96dfa7bc436291f544e78688d3bf --override
更多指导请参见 hbck2 自述文件。