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 | WARN org.apache.hadoop.hbase.master.HMaster: hbase:meta,,1.1588230740 is NOT online; state={1588230740 state=OPENING, |
hbck2 配置参考CDH-HBase 使用 HBCK2 运维即可
手动去 assign 一下 meta 表即可,hbase:meta 表的 encoded name 是一个时间戳,比如上面日志的 encoded name 就是 1588230740
,
具体命令参考下方
hbase org.apache.hbase.HBCK2 assigns -o 1588230740
查看 Master 日志,可以看到成功分配
1 | 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 |
执行命令验证成功
吐槽
之前听范老师说过: 运维三大法办- 监控、日志、源码。还是要细心
hbck2 的使用可以多看看官方文档说明,学习如何使用
参考链接