1.首先明确一点使用hadoop fs -rm -rf 并不是直接的删除文件而是将文件暂存在了hdfs的垃圾护收站里面,如果删除时间较久了就会被自动清理掉无法恢复建议第一时间去垃圾回收站恢复

[hdfs@ad-bigdata-b-1 ~]$ hadoop fs -ls 

drwx------   - hdfs supergroup          0 2022-06-22 19:00 .Trash

2.下面我操作删除一个test.txt文件然后恢复的测试

[hdfs@ad-bigdata-b-1 lh]$ hadoop fs -ls lh
Found 5 items
drwxr-xr-x   - hdfs supergroup          0 2022-03-01 10:02 lh/click
drwxr-xr-x   - hdfs supergroup          0 2022-03-24 10:17 lh/files
drwxr-xr-x   - hdfs supergroup          0 2022-03-01 10:02 lh/impress
-rw-r--r--   3 hdfs supergroup         25 2022-03-15 17:22 lh/mac_adunitids.txt
-rw-r--r--   3 hdfs supergroup          6 2022-06-23 11:32 lh/test.txt


[hdfs@ad-bigdata-b-1 lh]$ hadoop fs -rm -f lh/test.txt

3.删除之后我们去到.Trash文件夹下查看刚刚删除的文件,我们可以看到离我们最近的时间是11:34,无疑刚刚删除的文件就在它下面我们一级一级的查看下去就可以找到(如下所示)

[hdfs@ad-bigdata-b-1 lh]$ hadoop fs -ls .Trash
Found 5 items
drwx------   - hdfs supergroup          0 2022-06-22 11:54 .Trash/220622120000
drwx------   - hdfs supergroup          0 2022-06-22 13:44 .Trash/220622140000
drwx------   - hdfs supergroup          0 2022-06-22 15:05 .Trash/220622160000
drwx------   - hdfs supergroup          0 2022-06-22 18:11 .Trash/220622190000
drwx------   - hdfs supergroup          0 2022-06-23 11:34 .Trash/220623120000

[hdfs@ad-bigdata-b-1 lh]$ hadoop fs -ls .Trash/220623120000/user/hdfs/lh
Found 1 items
-rw-r--r--   3 hdfs supergroup          6 2022-06-23 11:32 .Trash/220623120000/user/hdfs/lh/test.txt

4.将test.txt文件恢复(其实就是mv出去)

[hdfs@ad-bigdata-b-1 ~]$ hadoop fs -mv .Trash/220623120000/user/hdfs/lh/test.txt lh
[hdfs@ad-bigdata-b-1 ~]$ hadoop fs -ls lh
Found 5 items
drwxr-xr-x   - hdfs supergroup          0 2022-03-01 10:02 lh/click
drwxr-xr-x   - hdfs supergroup          0 2022-03-24 10:17 lh/files
drwxr-xr-x   - hdfs supergroup          0 2022-03-01 10:02 lh/impress
-rw-r--r--   3 hdfs supergroup         25 2022-03-15 17:22 lh/mac_adunitids.txt
-rw-r--r--   3 hdfs supergroup          6 2022-06-23 11:32 lh/test.txt

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐