今天执行hbase 命令时出现如下错误

org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet 

0c91b5c250164755bb49f0792635f7ea.png

经过研究发现,是hadoop非正常启动进入了安全模式

hdfs dfsadmin -safemode get

6e2440868ff7417396e8a9b31588d9bd.png

 我们强制退出安全模式

hdfs dfsadmin -safemode forceExit

# 查看安全模式状态
hdfs dfsadmin -safemode get

# 进入安全模式
hdfs dfsadmin -safemode enter

# 离开安全模式
hdfs dfsadmin -safemode leave

# 强制退出安全模式
hdfs dfsadmin -safemode forceExit

# 等待安全模式
hdfs dfsadmin -safemode wait

再次启动hadoop发现任然出于安全模式

分析集群为什么一直处于安全模式

集群启动后,发现一直处于安全模式中,进入 WEB 界面查看,还有一大段提示,如

0cbac3add4ac4f7fbe3ca18196a78406.png

 通俗来说就是,当前系统中元数据与记录数据块前后不一致,而 Hadoop 默认要求最大的误差阀值为 0.001,如果超过这个值,就会导致 Hadoop 一直处于安全模式。也就是说,我们其实已经实际删除了某些数据块,但是记录的元数据因为一些故障导致没有进行同步,就会出现这种情况。

会发现那些数据块丢失的文件,将这些文件按照路径在 HDFS 中全部删除即可。

hadoop fs -rm /hbase/data/default/userinfo/6c5f672833258c05b916c813f63e8c5d/basic/d284834c848c49d9a5b0ce43e2a12cfd

cb2a8962dde346eba68165c68337216e.png

此时hbase恢复正常

675d5ea17bf24513b3f373ed90284f63.png

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐