记一次 HBase Master is initializing 问题处理

问题

hbase shell中建立建表出错

分析

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

看下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.

元数据namespace,,1602737534746.41cb240b37c7ba2e67a1bff035799b61未分配到RegionServer上

解决

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

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

尝试3:

  1. 停止hbase服务,然后删除zk上/hbase目录,重启hbase,其中由于启动kerberos安全加固,删除zk上的/hbase目录操作具体如下:
  2. 登录zk,查看权限
zookeeper-client -server ip:2181
[zk: ip:2181(CONNECTED) 1] getAcl /hbase
'world,'anyone
: r
'sasl,'hbase
: cdrwa
可以看到sasl用户是hbase,退出zkclient
  1. 编写jaas.conf.zk文件
cat jaas.conf.zk

Client {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="/home/dw_hbkal/keytab/hbase.keytab"
  storeKey=true
  useTicketCache=false
  principal="hbase@CVBG.COM";
};
  1. 设置环境变量
export CLIENT_JVMFLAGS="-Djava.security.auth.login.config=/home/dw_hbkal/CDH/sha/CDH/etc/conf/hbase-conf/jaas.conf.zk"
  1. 登录zk,删除/hbase目录
zookeeper-client -server ip:2181
[zk: ip:2181(CONNECTED) 0] rmr /hbase
  1. 上述步骤执行完,仍然没有解决问题,考虑到一些元数据及数据可能是存放在hdfs上面,因为是前不久新建的cdh集群,没有数据,不用担心数据丢失的问题,所有执行了以下清理的动作

    kinit hdfs(hbase用户权限不够)
    hadoop fs -rmr /hbase/data/hbase/meta/*
    hadoop fs -rmr /hbase/data/hbase/namespace/*
    hadoop fs -rmr /hbase/MasterProcWALs/*
    
  2. 启动hbase服务

    测试建表已经正常

原文地址:https://www.cnblogs.com/darange/p/13988966.html