一、错误描述

网上查这个错误几乎都是说是因为Hadoop是处于安全模式,用命令退出即可
但是我的并没有作用,如果你的虚拟机有这种情况,可以看一下我的解决方法

hbase:001:0> list
TABLE                                                                                                                                                                                      

ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
 at org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:2722)
 at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1198)
 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)

For usage try 'help "list"'

Took 13.7534 seconds  

在这里插入图片描述

二、解决过程

首先要注意你的启动和关闭过程,先启动Hadoop再启动Hbase
关闭的时候相反

下面看我整个的过程来,排查一下自己会在哪里出现问题

1)先启动hadoop
start-all.sh

查看进程:
在这里插入图片描述

打开网页,看那个安全模式是否是关闭状态:如果显示为ON 则要关闭安全模式
在这里插入图片描述

2)再启动HBase
start-hbase.sh

再查看Hbase是否启动成功,可以用jps命令看,有三个H开头的启动起来了
在这里插入图片描述
虚拟机浏览器查看:
在这里插入图片描述

3)Hbase进入shell命令

输入

hbase shell

然后输入list命令报错,这里尝试了非常多的方式,查看配置、重装Hbase等等,折腾了很久

在这里插入图片描述
最后在一篇博客中找到了一个可能的原因:

他Hbase的日志打印是这样的,并且他说删除了Hbase的这个slf4j-log4j12-1.7.25.ja包,重启以后就可以用了

SLF4J: Found binding in [jar:file:/home/xy/Downloads/hadoop-3.3.0/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/xy/Downloads/hbase-2.3.2/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]

这个日志是说发现这个绑定slf4j-log4j12-1.7.25.jar包的问题

我认为是Hadoop和Hbase的这个jar包出现了冲突

那就在Hbase中找到这个jar,删掉即可

4)删除日志jar包

先退出这个模式 exit
然后:
进入usr/local/hbase-2.3.2/lib/client-facing-thirdparty/目录,看有没有这个jar包:slf4j-log4j12-1.7.30.jar
注意这个路径是你的hbase的安装路径
在这里插入图片描述

有的话将slf4j-log4j12-1.7.30.jar包移除:
在这里插入图片描述

进入hbase-2.3.2/conf/hbase-env.sh中,添加一句命令:

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

在这里插入图片描述

重新启动hdfs、hbase,问题解决

5)关闭重启

关闭:

  1. 关 HBASE:可以用 stop-hbase.sh,不过可能关不掉,就直接 kill 掉三个 H 开头的进程。
  2. 关 Hadoop:stop-all.sh Ps:一定要先 HBASE 再关 Hadoop,不然 Hadoop 会进入安全模式

我用stop-hbase.sh关不掉Hbase,所以我是直接kill进程:
在这里插入图片描述
然后再关Hadoop
用jps查看只剩下这个进程,证明关闭成功
在这里插入图片描述
然后再按照前面的步骤重启就可以了

在这里插入图片描述

问题解决!

如果文章对你有帮助,不要忘了给我点个赞吼( ̄▽ ̄)~
欢迎关注我的微信公众号:松鼠技术站

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐