hadoop Name node is in safe mode

2020年06月07日 160点热度 0人点赞 0条评论

错误代码:

Namenode is in safe mode.

NameNode处于安全模式中。

错误原因:

1、hadoop集群在刚启动的时候,会对集群内所有节点的数据块进行检查,保证数据块的完整性,

在检查的这个阶段就会处于只读的模式,不允许系统内的文件进行修改和删除操作,直到安全模式结束。
2、hdfs中有数据块丢失,造成系统一直处于安全模式

解决办法-1:

1、强制离开安全模式:hadoop dfsadmin -safemode leave

2、在hdfs-site.xml配置参数:

参数名:dfs.safemode.threshold.pct

参数值:0

即可关闭safemode

解决办法-2:

在错误原因中,说了两个原因,如果有数据块丢失的情况下,可以使用fsck命令来修复。

如果数据不是很重要,就没必要修复了。

手动修复,首先检查哪些数据块丢失了:

hdfs fsck /

修复指定路径的hdfs文件,尝试多次

hdfs debug recoverLease -path 文件位置 -retries 重试次数

执行这个命令,hdfs就能被修复了,切记不要使用hdfs fsck / -delete 命令,它是删除所有损坏的块的数据文件,会导致数据彻底丢失,当然若只有一个副本,或所有副本均已经损坏,则可以执行此命令。

 

企业中一般会使用这种手动方式去修复数据块,而不使用自动方式,此处只做简单解释。

阿布

源自灵魂深处的自我救赎。

文章评论