删除 Hadoop 文件系统 (hdfs) 中的文件

Posted

技术标签:

【中文标题】删除 Hadoop 文件系统 (hdfs) 中的文件【英文标题】:Delete files in Hadoop file system (hdfs) 【发布时间】:2015-05-28 03:15:03 【问题描述】:

我让一个 sqoop 作业运行,它完全填满了 hdfs(100%)。现在我无法删除 Hdfs 中的文件。它给了我一个执行权

    # hdfs dfs -rm -skipTrash /TEST_FILE 
    rmr: Cannot delete /TEST_FILE. Name node is in safe mode.

我使用hdfs dfsadmin -safemode 退出安全模式。

    [hdfs@sandbox /]$ hdfs dfsadmin -safemode leave
    Safe mode is OFF 

但是当我再次尝试使用hdfs dfs -rm -skipTrash /TEST_FILE 删除文件时,我收到NameNode is in safemode 的错误消息

我无法离开安全模式并删除文件。

谁能帮助我如何退出安全模式并删除文件?

【问题讨论】:

是单节点集群吗?您的集群中的数据复制因子是什么? 检查namenode是否有至少1个活动的datanode并检查你的磁盘中的存储。 试试这个hdfs dfsadmin -safemode leave 是单节点集群,数据复制因子为1。我也检查了磁盘存储,已经满了。 尝试“hadoop fs -expunge”,然后是“sudo -u hdfs hdfs dfsadmin -safemode leave”,这将有助于清空你的垃圾箱。这样你就可以留下一些空间。 【参考方案1】:

Namenode 不能使用命令“hdfs dfsadmin -safemode leave”退出安全模式,除非你真的在清理某些东西。如果您不执行任何操作并使用该命令,名称节点将返回安全模式。 由于您使用的是单节点集群,您可以尝试清理您的日志目录 /var/log/ ... 并将名称节点退出安全模式并删除 sqoop 留下的 hdfs 目录

【讨论】:

以上是关于删除 Hadoop 文件系统 (hdfs) 中的文件的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop小结

删除Android小部件中的文本子字符串

学习笔记Hadoop—— Hadoop基础操作—— Hadoop安全模式Hadoop集群基本信息

HDFS中的shell操作

分享知识-快乐自己:Hadoop 常用基础命令

Hadoop HDFS的主要架构与读写文件