本文共 1870 字,大约阅读时间需要 6 分钟。
hadoop版本: apache-hadoop-2.6.5
hadoop 的HDFS中也提供了回收站(trash)的概念,使得数据被误删以后,还可以通过回收站找回来。
1.启用回收站
在core-site.xml中添加如下配置,并重新启动集群。fs.trash.interval 1440 fs.trash.checkpoint.interval 1440
fs.trash.interval
指文件在回收站的暂存时间,文件被删除后实际上是被移动到回收站暂存目录下,而不是马上删除。等到回收周期到了,hdfs才会真正的将数据删除。默认的单位是分钟,1440分钟恰好就是一天。fs.trash.checkpoint.interval
指垃圾回收的检查间隔,一般不会大于fs.trash.interval。2.验证回收站
root@namenode:/opt/hadoop-2.6.5# ./bin/hdfs dfs -ls /testFound 1 items-rw-r--r-- 3 root supergroup 104 2018-05-30 13:32 /test/a.txt
我们以test目录为例,下面有一个名为a.txt文件,我们对它执行删除操作。
root@namenode:/opt/hadoop-2.6.5# ./bin/hdfs dfs -rm /test/a.txt18/05/31 10:01:24 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1440 minutes, Emptier interval = 0 minutes.Moved: 'hdfs://namenode:9000/test/a.txt' to trash at: hdfs://namenode1:9000/user/root/.Trash/Current
通过命令的输出结果我们可以看到/test/a.txt文件实际被move到/root/.Trash/Current目录下了。
root@namenode:/opt/hadoop-2.6.5# ./bin/hdfs dfs -ls -R /user/root/.Trash/Currentdrwx------ - root supergroup 0 2018-05-31 10:01 /user/root/.Trash/Current/test-rw-r--r-- 3 root supergroup 104 2018-05-30 13:32 /user/root/.Trash/Current/test/a.txt
再次被验证文件被转移到回收站暂存目录下了。
如果刚才的操作是一时不小心,那么通过mv命令可以将文件还原回去。
root@namenode:/opt/hadoop-2.6.5# ./bin/hdfs dfs -mv /user/root/.Trash/Current/test/a.txt /test
3.清空回收站
root@namenode:/opt/hadoop-2.6.5# ./bin/hdfs dfs -expunge18/05/31 10:08:45 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1440 minutes, Emptier interval = 0 minutes.18/05/31 10:08:45 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/root/.Trash/180531100845
4.直接删除(不放入回收站)
在删除文件时,也可以加入-skipTrash 选项略过回收站。root@namenode1:/opt/hadoop-2.6.5# ./bin/hdfs dfs -rm -skipTrash /test/a.txt Deleted /test/a.txt
转载地址:http://egcmb.baihongyu.com/