HBase - hbase:metadata 保存有关不存在的 RegionServer ID 的信息 - "Master startup cannot progress, in holding-pattern until region onlined."

HBase - hbase:metadata holds info about non existing RegionServer ID - "Master startup cannot progress, in holding-pattern until region onlined."

我无法启动 Hbase Master,因为出现以下错误:

[Thread-18] master.HMaster: hbase:meta,,1.1588230740 
    is NOT online; state={1588230740 state=OPEN, ts=1569328636085, server=regionserver17,16020,1566375930434}; 
    ServerCrashProcedures=true. 
    Master startup cannot progress, in holding-pattern until region onlined.

Hbase Master 处于活动状态并且是绿色的,但实际上它没有正确启动,因为它在日志中生成了这些警告,实际上我什至无法在 Hbase shell 中执行列表,因为那时我得到错误:错误:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

hbase:meta 正在引用一些不存在的 ID 1566375930434,它在 WAL 和 zookeeper-client /hbase-unsecure/rs 列表中都不存在。

我试过这些命令:

$ sudo -u hdfs hdfs dfs -rm -r /apps/hbase/data/WALs/

$ zookeeper-client rmr /hbase-unsecure/rs

我也试过这个:

rm -f /var/lib/ambari-metrics-collector/hbase-tmp/zookeeper/zookeeper_0/version-2/*

并重新启动了 Hbase,但仍然总是遇到同样的问题。 如果有人可以给我额外的建议,可以尝试什么。 谢谢

我们解决了这个问题。 解决方案是

  • 停止 Hbase
  • 以 root
  • 登录 zookeeper-client
  • 执行命令rmr /hbase-unsecure/meta-region-server
  • 启动Hbase

您可以使用 OS 路径配置 Zookeeper。当您多次启动和停止时,可能会发生此错误。我会得到这种情况,所以我用 hdfs 路径配置 Zookeeper 目录。这是我的hbase-site.xml

<property> <name>hbase.zookeeper.property.dataDir</name> <value>hdfs://master:9000/user/hdoop/zookeeper</value> </property>

祝你好运。