如何从HDFS中删除文件?

问题描述 投票:19回答:5

我刚刚下载了Hortonworks沙盒VM,里面有Hadoop版本2.7.1。我通过使用添加一些文件

hadoop fs -put /hw1/* /hw1

...命令。之后我将删除添加的文件

hadoop fs -rm /hw1/*

...命令,并在清理回收站后,通过

hadoop fs -expunge

...命令。但是在重新清洗后,DFS剩余空间没有改变。即使我可以看到数据真的从/ hw1 /和recyle bin中删除了。我有fs.trash.interval parameter = 1

实际上我可以在/hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2文件夹中找到我的所有数据分组,这真的让我感到惊讶,因为我希望它们被删除。

那么我的问题是如何以真正删除的方式删除数据?经过几次添加和删除后,我的空闲空间耗尽了。

hadoop hdfs hortonworks-data-platform
5个回答
11
投票

你的问题是在HDFS的基础之内。在HDFS(以及许多其他文件系统)中,文件的物理删除不是最快的操作。由于HDFS是分布式文件系统,并且通常在已删除文件的不同服务器上复制至少3个副本,因此在请求删除文件后,必须在后台删除每个副本(可能包含不同硬盘驱动器上的许多块)。

Hadoop的Official documentation告诉我们以下内容:

删除文件会导致释放与文件关联的块。请注意,在用户删除文件的时间与HDFS中相应增加的可用空间之间可能存在明显的时间延迟。


13
投票

试试hadoop fs -rm -R URI

-R选项以递归方式删除目录及其下的任何内容。


4
投票

什么对我有用:

hadoop fs -rmr -R <your Directory>

1
投票

Durga Viswanath Gadiraju是对的,它是时间的问题,也许我的PC很慢,并且还使用VM,10分钟后文件被物理删除,如果你使用我在问题中使用的algorythm。注意设置fs.trash.interval参数= 1.或者默认情况下,文件的删除速度不会超过6小时。


1
投票

您可以使用

hdfs dfs -rm -R /path/to/HDFS/file

因为hadoop dfs已被弃用。

© www.soinside.com 2019 - 2024. All rights reserved.