0%

记一次 HBase Master is initializing 问题处理

HBase org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 错误处理


前言

测试集群上做了jar包替换验证测试,测试完之后还原jar,重启出现进入 hbase shell 中执行命令遇到问题。

org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 代表Master正在初始化中,出现这种错误的原因有很多

关键还是得看 Master 日志,盲目搜索效率不高

一开始只是搜索 ERROR 日志,并没有看到很关键的信息,后面看其他博客贴的日志片段是 WARN,进而
转换思路看 WARN,一看这个是 meta 表未分配到 RS 上啊,之前处理过,用 hbck2 解决即可

1
2
3
WARN org.apache.hadoop.hbase.master.HMaster: hbase:meta,,1.1588230740 is NOT online; state={1588230740 state=OPENING, 
ts=1579334053311, server=region-168-1-240,16020,1579334037426}; ServerCrashProcedures=true. Master startup cannot
progress, in holding-pattern until region onlined.

hbck2 配置参考CDH-HBase 使用 HBCK2 运维即可

手动去 assign 一下 meta 表即可,hbase:meta 表的 encoded name 是一个时间戳,比如上面日志的 encoded name 就是 1588230740
具体命令参考下方

hbase org.apache.hbase.HBCK2 assigns -o 1588230740

查看 Master 日志,可以看到成功分配

1
2
3
INFO org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler: Took xlock for pid=7, state=RUNNABLE:REGION_TRANSITION_QUEUE; AssignProcedure table=hbase:meta, region=1588230740, override=true
INFO org.apache.hadoop.hbase.master.assignment.AssignProcedure: Assigned, not reassigning rit=OPEN, location=region-168-1-240,16020,1579334037426
INFO org.apache.hadoop.hbase.procedure2.ProcedureExecutor: Finished pid=6, state=SUCCESS; AssignProcedure table=hbase:meta, region=1588230740, override=true in 160msec

执行命令验证成功

吐槽

之前听范老师说过: 运维三大法办- 监控、日志、源码。还是要细心

hbck2 的使用可以多看看官方文档说明,学习如何使用


参考链接