Hbase:报错ERROR: ..hadoop.hbase.Server is not running yet

时间:2023-03-30 12:07:15

今天遇到2个问题

ERROR: ..hadoop.hbase.Server is not running yet

ERROR: NoNode for /hbase/master

按照步骤运行zk,hadoop,hbase

然后hbase shell进入查看list

提示:

Hbase:报错ERROR: ..hadoop.hbase.Server is not running yet 到网上搜了一下,说是hadoop进入了安全模式,所导致的,把关了就行,
一般都是数据块损坏导致进入了安全模式,这时候

第一步:先看当前用户是否对hbase有权限,一般使用hbase目录的所有者操作hbase
第二步:看hadoop是否处于安全模式,若处于则关闭安全模式

可以选择强制退出安全模式,

hdfs dfsadmin -safemode get     #查看是否处于安全模式
hdfs dfsadmin -safemode leave  #关闭安全模式

解决办法:

2、或者修改配置文件hdfs-site.xml,降低进入安全模式的阈值
默认值是0.999,将值该小就行

<name>dfs.namenode.safemode.threshold-pct</name>
<value>o.999f</value>

退出安全模式后,重启hbase的服务,进入之后,输入命令,又出现了如下的错误

Hbase:报错ERROR: ..hadoop.hbase.Server is not running yet

 完蛋这不是master挂掉了吗?

jps查看服务,确实HMaster不在了,HRegionServer还在

hbase的日志文件,下面4个都可以看一下,查看后200行就可以

tail -n 200 xxx (hbase/logs下)

后来在日志文件中查出如下错误

Hbase:报错ERROR: ..hadoop.hbase.Server is not running yet

是数据丢了。
没错,一开始进入安全模式的原因就是数据块损坏丢失了,丢的正好是hbase的,所以导致hbase不能正常使用

使用下面命令,查看丢失的数据块

// 执行以下命令查看是否有块缺失
hdfs fsck /

 查出数据如下,可以看到丢失的块数,可数据的大小

Hbase:报错ERROR: ..hadoop.hbase.Server is not running yet

 

通过如下命令,查看丢失数据块的位置

hdfs fsck -list-corruptfileblocks

效果如下,因为我都删除了,所有没有了路径,不然是有路径的

Hbase:报错ERROR: ..hadoop.hbase.Server is not running yet

 找到损坏文件的位置之后,你可以选择删除,也可以恢复,
这里我选择的是删除
rm 后面的就是找出来的损坏文件的位置,直接删除,进入回收站

hdfs dfs -rm /hbase/oldWALs/singlenodeaaa

 删除结束后,在运行命令看看,有没有损坏的数据块

hdfs fsck /

 如下图就是没有损坏的数据块了

Hbase:报错ERROR: ..hadoop.hbase.Server is not running yet

 随后,关闭所有服务,然后重启就可以了

总结:我估计是我断电后导致数据丢失。