如何从hdfs中删除文件?

ghg1uchk  于 2021-06-02  发布在  Hadoop
关注(0)|答案(6)|浏览(684)

我刚刚下载了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 文件夹,这是真的让我惊讶,因为我希望他们被删除。
所以我的问题是如何删除数据的方式,他们真的会被删除?经过几次添加和删除,我得到了耗尽的自由空间。

sg24os4d

sg24os4d1#

尝试 hadoop fs -rm -R URI -r选项递归删除目录及其下的任何内容。

mitkmikd

mitkmikd2#

你的问题在hdfs的基础之内。在hdfs(和许多其他文件系统)中,物理删除文件并不是最快的操作。由于hdfs是分布式文件系统,通常在已删除文件的不同服务器上至少复制3个副本,因此在您请求删除文件后,必须在后台删除每个副本(可能由不同硬盘驱动器上的许多块组成)。
hadoop的官方文档告诉我们:
删除文件会释放与该文件关联的块。注意,在用户删除文件的时间和hdfs中的空闲空间相应增加的时间之间可能存在明显的时间延迟。

nhaq1z21

nhaq1z213#

durga viswanath gadiraju是对的,这是时间问题,也许我的电脑速度慢,而且还使用虚拟机,10分钟后文件被物理删除,如果你使用的是我在问题中使用的算法。注意:设置fs.trash.interval参数=1。或者默认情况下,删除文件的速度不会超过6小时。

k5hmc34c

k5hmc34c4#

你可以用

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

hadoop dfs 已被弃用。

eufgjt7s

eufgjt7s5#

如果你还需要跳过垃圾以下命令为我工作

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

fv2wmkja6#

对我有用的是:

hadoop fs -rmr -R <your Directory>

相关问题