记一次服务器异常掉电,导致HBase Master is initializing 问题处理

Posted 总要冲动一次

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次服务器异常掉电,导致HBase Master is initializing 问题处理相关的知识,希望对你有一定的参考价值。

问题:

服务器掉电后重启服务器,并重启Hadoop、Zookeeper、HBase服务后,进程均一切正常,但是在HBase Web界面查看不到一张表,包括元数据表。使用 shell 命令扫描数据表提示表不存在错误。

分析:

看下Master的日志,发现一条WARN日志:

下午1点59:29.953分	WARN	HMaster	
hbase:namespace,,1602737534746.41cb240b37c7ba2e67a1bff035799b61. is NOT online; state=41cb240b37c7ba2e67a1bff035799b61 state=OPEN, ts=1605238978817, server=bg11194.hadoop.com,16020,1602750152053; ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.

org.apache.hadoop.hbase.PleaseHoldException: Master is initializing代表Master正在初始化中,出现这种错误的原因有很多,查看hbase web界面,发现如下提示:

系统表hbase:namespace,1602737534746.41cb240b37c7ba2e67a1bff035799b61未分配到RegionServer上。

既然是元数据出现错误,可以尝试手动修复元数据,如果修复失败暴力删除元数据(做好备份),重启HBase后生成新的元数据,这是只需要手动将数据表添加 region 信息到 meta 表,再 assign 即可。

解决

尝试1:重启hbase,发现无效

尝试2:手动分配,执行 assign namespace,1602737534746.41cb240b37c7ba2e67a1bff035799b61,无效,仍提示org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

尝试3:
1、停止 HBase 服务,删除 Zookeeper 中 /hbase 目录,重启 HBase

zk 数据备份:
1)进入 zk 配置的数据目录下的 version-2 目录,比较 zk 集群每个节点的 snapshot 文件,对最新的 snapshot. 和对应的 log. 文件进行备份(zookeeper事务ID是递增的)
2)deleteall /hbase

2、重启 HBase 后,添加表 region 信息到 meta 表

系统表
hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar addFsRegionsMissingInMeta hbase:namespace
用户数据表
hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar addFsRegionsMissingInMeta default:ods_data_1

3、重启 HBase

4、重新分配 region ,使用 2 输出的结果作为参数

hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar assigns c8ec30eacde9b68d1fd568feba59354c cf9d13dbdc0384dff5bdc494f39e1f71 d7b1b20b61143519835ef692b767471c de22be87c5f9458ffe17446f66ee9d02 dee929bc685939371b73485775f285b9 eb805bd3ed5a4c9a2ecbbca4c49395ed

到此一切恢复正常!

以上是关于记一次服务器异常掉电,导致HBase Master is initializing 问题处理的主要内容,如果未能解决你的问题,请参考以下文章

记一次Postgresql异常中断导致的启动失败

记一次HBase RegionServer 经常挂掉 故障排查过程

记一次接口授权导致的500异常排查

记一次接口授权导致的500异常排查

记一次接口授权导致的500异常排查

记一次接口授权导致的500异常排查