现象:org.apache.hadoop.hbase.pleaseholdexception: master is initializing
描述:在启动hbase之后进入bin/hbase shell 命令行进行一些操作,比如建表或者添加数据到表中出现这种报错org.apache.hadoop.hbase.pleaseholdexception: master is initializing
error: org.apache.hadoop.hbase.pleaseholdexception: master is initializing
at org.apache.hadoop.hbase.master.hmaster.checkinitialized(hmaster.java:2739)
at org.apache.hadoop.hbase.master.hmaster.disabletable(hmaster.java:2310)
at org.apache.hadoop.hbase.master.masterrpcservices.disabletable(masterrpcservices.java:802)
at org.apache.hadoop.hbase.shaded.protobuf.generated.masterprotos$masterservice$2.callblockingmethod(masterprotos.java)
at org.apache.hadoop.hbase.ipc.rpcserver.call(rpcserver.java:395)
at org.apache.hadoop.hbase.ipc.callrunner.run(callrunner.java:133)
at org.apache.hadoop.hbase.ipc.rpcexecutor$handler.run(rpcexecutor.java:338)
at org.apache.hadoop.hbase.ipc.rpcexecutor$handler.run(rpcexecutor.java:318)
分析:master正在初始化
1、集群中的节点时间不同步,可以在启动的集群中使用命令行:date,查看各个节点的时间是否同步,如果不同步,可以参考这篇博客进行集群离线状态时间同步的修改https://blog.csdn.net/m0_46413065/article/details/116378004
2、如果以上方式仍然没有效果,可能报错的原因二是:hdfs中和zookeeper中的hbase没有删除,所以这里需要将其进行删除,具体的命令如下:注意:删除zookeeper中的 /hbase 目录,需要保证zookeeper已经开启,否则无法连接上。
方案:1.删除zookeeper中的所有的/hbase目录
# 切换到zookeeper的bin目录下
cd /opt/module/zookeeper/bin
# 然后执行 ./zkcli.sh 命令
[xxhadoop102 bin]$ ./zkcli.sh
# 输入 ls / 命令行查看所有的内容
[zk: localhost:2181(connected) 0] ls /
[hbase, kafka, servers, spark, zookeeper]
# 使用 rmr /hbase 或者 deleteall /hbase 删除zookeeper中的所有 hbase的目录
[zk: localhost:2181(connected) 3] deleteall /hbase
node does not exist: /hbase
# 此时,可以看到zookeeper中已经没有hbase了
[zk: localhost:2181(connected) 5] ls /
[kafka, servers, spark, zookeeper]
然后重启hbase即可
2.删除hdfs下的所有hbase目录
# 词命令行运行是在hadoop的根目录下
[xx@hadoop102 hadoop]$ hdfs dfs -du -rm -r /hbase
执行以上操作之后,然后依次启动zookeeper,hadoop,hbase。然后在进入hbase中的bin/hbase shell 的目录中进行操作。
发表评论