Hbase使用shell命令出现报错:PleaseHoldException: Master is initializing 解决办法

在Ubuntu20.04上运行Hadoop3.2.2和Hbase2.2.2时遇到Masterisinitializing错误。问题源于Hadoop和Hbase进程不同步。解决方案包括关闭所有服务,删除HDFS中的/hbase目录,然后重新启动服务。如果问题依然存在,可尝试重启系统并重新格式化HDFS。
摘要由CSDN通过智能技术生成


项目场景:

  • Ubuntu20.04
  • Hadoop3.2.2
  • Hbase2.2.2

问题描述:

主要错误如下:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

在启动 Hbase shell 后,使用 create, list 等命令时,出现如下报错:

hbase(main):001:0> list
TABLE 
                                                                                                                    
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
        at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2452)
        at org.apache.hadoop.hbase.master.MasterRpcServices.getTableNames(MasterRpcServices.java:915)
        at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:58517)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2339)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123)
        at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188)
        at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168)

For usage try 'help "list"'

Took 10.297 seconds

原因分析:

这里我的电脑上只是单纯为 Hadoop 伪分布式集群配置了 Hbase 应用,所以像网上其他说的 Hbase 和 Zookeeper 服务器时间不一致问题我觉的是不大可能的, 主要原因应该是:Hadoop 和 Hbase 的进程不一致,导致 Master 结点一直在初始化。


解决方案:

格式化 Hadoop 中的 Hbase 文件系统,重新启动 Hbase,让两者重新同步:

先关闭所有 Hbase 服务:

cd /usr/local/hbase
bin/stop-hbase.sh

接着关闭所有 Hadoop 服务:

cd /usr/local/hadoop
sbin/stop-all.sh

输入 jps,确保所有 Hadoop 和 Hbase 进程均已关闭:

zq@fzqs-Laptop:~$ jps
4673 Jps

接着启动 Hadoop 服务:

cd /usr/local/hadoop
sbin/start-all.sh

查看 HDFS 中的文件:

bin/hdfs dfs -ls /

输出应如下(含 /hbase):

zq@fzqs-Laptop:/usr/local/hadoop$ bin/hdfs dfs -ls /
Found 1 items
drwxr-xr-x		- root supergroup 		0 2021-10-28 21:49 /hbase

删除 /hbase 目录:

bin/hdfs dfs -rm -r /hbase

启动 Hbase 服务:

cd /usr/local/hbase
bin/start-hbase.sh

接着再启动 shell,应该就能用了:

bin/hbase shell

附:

若上述步骤完成仍出现 Master is initializing 等报错,则先重启电脑\虚拟机:

sudo reboot

接着打开电脑后,进入到 /usr/lcoal/hadoop 文件夹下,重新初始化文件系统(这步可能会导致你原来 HDFS 里的数据丢失):

cd /usr/lcoal/hadoop
sudo rm -rf ./tmp
bin/hdfs namenode -format

启动 Hadoop 及其相关服务:

sbin/start-all.sh

切换到 Hbase 文件夹下,启动 Hbase:

cd /usr/lcoal/hbase
bin/start-hbase.sh

接着你的 shell 应该就能正常使用啦!

bin/hbase shell
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z.Q.Feng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值