本想删除hfds文件系统的一些数据,当我进行删除的时候,会提醒hdfs的mode是safe 如图所示:
[root@hadoop tmp]# hadoop fs -rm -f /output/*
rm: Cannot delete /output/_SUCCESS. Name node is in safe mode.
rm: Cannot delete /output/part-r-00000. Name node is in safe mode.
查阅相关资料,解释为:
在启动过程中,NAMENODE从FSIMAGE和编辑日志文件加载文件系统状态。然后,它等待数据块报告它们的块,以便即使在集群中已经存在足够的副本,也不会过早地开始复制这些块。在此期间,NAMENODE停留在Safemode
也就是说,从fsimage和编辑日志加载系统后,块报告在未报告状态时,为了保护数据的完整性和正确性,此时的hdfs会进入安全模式,禁止删除文件(修改文件能不能暂时不知道,有兴趣的同学可以尝试一下,在安全模式下,修改文件的内容),
解决方式:
#获取安全模式的状态:
[root@hadoop tmp]# hdfs dfsadmin -safemode get
Safe mode is OFF
#进入安全模式
[root@hadoop tmp]# hdfs dfsadmin -safemode enter
Safe mode is ON
#退出安全模式
[root@hadoop tmp]# hdfs dfsadmin -safemode leave
Safe mode is OFF
关闭即可,完美解决
[root@hadoop tmp]# hadoop fs -rm -f /output/*
rm: Cannot delete /output/_SUCCESS. Name node is in safe mode.
rm: Cannot delete /output/part-r-00000. Name node is in safe mode.