问题:删除hdfs上的内容报错:rm: Cannot delete /wxcm/ Name node is in safe mode.
原因:这是因为在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
解决方法:
(1)只需要等待一会儿即可;
(2)可以通过以下命令来手动离开安全模式:hdfs dfsadmin -safemode leave
用户可以通过hdfs dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
hdfs dfsadmin -safemode enter - 进入安全模式
hdfs dfsadmin -safemode leave - 强制NameNode离开安全模式
hdfs dfsadmin -safemode get - 返回安全模式是否开启的信息
hdfs dfsadmin -safemode wait - 等待,一直到安全模式结束。
但是这次即使执行了hdfs dfsadmin -safemode leave也无法退出安全模式。
运行df -lh 发现三个节点的磁盘几乎都满了,于是清理不必要的文件释放磁盘空间。再次运行hdfs dfsadmin -safemode leave
成功退出。