如何从 HDFS 中删除文件?
How to delete files from the HDFS?
我刚刚下载了Hortonworks sandbox VM,里面有2.7.1版本的Hadoop。我使用
添加了一些文件
hadoop fs -put /hw1/* /hw1
...命令。之后我将删除添加的文件,由
hadoop fs -rm /hw1/*
...命令,清理回收站后,通过
hadoop fs -expunge
...命令。但是回收站清理后 DFS Remaining space 没有改变。甚至我都可以看到数据确实从 /hw1/ 和回收站中删除了。我有 fs.trash.interval parameter = 1
.
实际上我可以在 /hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2
文件夹中找到我所有的数据,这让我很惊讶,因为我希望它们被删除。
所以我的问题是如何以真正删除数据的方式删除数据?几次增删改查,累死了space.
Durga Viswanath Gadiraju 是对的,这是时间问题,也许我的 PC 速度很慢,并且还使用 VM,10 分钟后文件将被物理删除,如果您使用的是我在问题中使用的算法。
注意设置 fs.trash.interval 参数 = 1。或者默认情况下文件不会被删除的速度超过 6 小时。
尝试hadoop fs -rm -R URI
-R选项递归删除目录及其下的任何内容。
你的问题出在HDFS的基础上。在 HDFS(以及许多其他文件系统)中,物理删除文件并不是最快的操作。由于 HDFS 是分布式文件系统,通常在已删除文件的不同服务器上复制至少 3 个副本,因此每个副本(可能由不同硬盘驱动器上的许多块组成)必须在您请求删除文件后在后台删除。
Hadoop 的 Official documentation 告诉我们以下内容:
The deletion of a file
causes the blocks associated with the file to be freed. Note that
there could be an appreciable time delay between the time a file is
deleted by a user and the time of the corresponding increase in free
space in HDFS.
什么对我有用:
hadoop fs -rmr -R <your Directory>
您可以使用
hdfs dfs -rm -R /path/to/HDFS/file
因为 hadoop dfs
已被弃用。
如果您还需要跳过垃圾箱,请遵循对我有用的命令
hdfs dfs -rm -R -skipTrash /path/to/HDFS/file
我刚刚下载了Hortonworks sandbox VM,里面有2.7.1版本的Hadoop。我使用
添加了一些文件hadoop fs -put /hw1/* /hw1
...命令。之后我将删除添加的文件,由
hadoop fs -rm /hw1/*
...命令,清理回收站后,通过
hadoop fs -expunge
...命令。但是回收站清理后 DFS Remaining space 没有改变。甚至我都可以看到数据确实从 /hw1/ 和回收站中删除了。我有 fs.trash.interval parameter = 1
.
实际上我可以在 /hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2
文件夹中找到我所有的数据,这让我很惊讶,因为我希望它们被删除。
所以我的问题是如何以真正删除数据的方式删除数据?几次增删改查,累死了space.
Durga Viswanath Gadiraju 是对的,这是时间问题,也许我的 PC 速度很慢,并且还使用 VM,10 分钟后文件将被物理删除,如果您使用的是我在问题中使用的算法。 注意设置 fs.trash.interval 参数 = 1。或者默认情况下文件不会被删除的速度超过 6 小时。
尝试hadoop fs -rm -R URI
-R选项递归删除目录及其下的任何内容。
你的问题出在HDFS的基础上。在 HDFS(以及许多其他文件系统)中,物理删除文件并不是最快的操作。由于 HDFS 是分布式文件系统,通常在已删除文件的不同服务器上复制至少 3 个副本,因此每个副本(可能由不同硬盘驱动器上的许多块组成)必须在您请求删除文件后在后台删除。
Hadoop 的Official documentation 告诉我们以下内容:
The deletion of a file causes the blocks associated with the file to be freed. Note that there could be an appreciable time delay between the time a file is deleted by a user and the time of the corresponding increase in free space in HDFS.
什么对我有用:
hadoop fs -rmr -R <your Directory>
您可以使用
hdfs dfs -rm -R /path/to/HDFS/file
因为 hadoop dfs
已被弃用。
如果您还需要跳过垃圾箱,请遵循对我有用的命令
hdfs dfs -rm -R -skipTrash /path/to/HDFS/file