记一次 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:
- 停止hbase服务,然后删除zk上/hbase目录,重启hbase,其中由于启动kerberos安全加固,删除zk上的/hbase目录操作具体如下:
- 登录zk,查看权限
zookeeper-client -server ip:2181
[zk: ip:2181(CONNECTED) 1] getAcl /hbase
'world,'anyone
: r
'sasl,'hbase
: cdrwa
可以看到sasl用户是hbase,退出zkclient
- 编写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";
};
- 设置环境变量
export CLIENT_JVMFLAGS="-Djava.security.auth.login.config=/home/dw_hbkal/CDH/sha/CDH/etc/conf/hbase-conf/jaas.conf.zk"
- 登录zk,删除/hbase目录
zookeeper-client -server ip:2181
[zk: ip:2181(CONNECTED) 0] rmr /hbase
-
上述步骤执行完,仍然没有解决问题,考虑到一些元数据及数据可能是存放在hdfs上面,因为是前不久新建的cdh集群,没有数据,不用担心数据丢失的问题,所有执行了以下清理的动作
kinit hdfs(hbase用户权限不够) hadoop fs -rmr /hbase/data/hbase/meta/* hadoop fs -rmr /hbase/data/hbase/namespace/* hadoop fs -rmr /hbase/MasterProcWALs/*
-
启动hbase服务
测试建表已经正常