admin管理员组

文章数量:1550692

文章目录

  • 项目场景:
  • 问题描述:
  • 原因分析:
  • 解决方案:
  • 附:


项目场景:

  • 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

本文标签: 报错解决办法命令ShellHbase