恢復HDFS文件刪除后的方法


HDFS 為我們提供了垃圾箱的功能,也就是當我們執行 hadoop fs -rmr xxx 命令之后,文件並不是馬上被刪除,而是會被移動到執行這個操作用戶的 .Trash 目錄下,等到一定的時間后才會執行真正的刪除操作。

如下所示:

$ sudo -uiteblog hadoop fs -rmr /user/iteblog/test .txt
Moved: 'hdfs://iteblogcluster/user/iteblog/test.txt' to trash at: hdfs: //iteblogcluster/user/iteblog/ .Trash /Current
 
$ sudo -uiteblog hadoop fs - ls /user/iteblog/ .Trash /Current/user/iteblog
-rw-r--r--   3 iteblog iteblog  103 /user/iteblog/ .Trash /Current/user/iteblog/test .txt
 
$ sudo -uiteblog hadoop fs - mv /user/iteblog/ .Trash /Current/user/iteblog/test .txt /user/iteblog/
 
$ sudo -uiteblog hadoop fs - ls /user/iteblog/test .txt
-rw-r--r--   3 iteblog iteblog  103  test .txt
從上面的例子中可以看出,我們刪了 test.txt 文件之后,文件被移到 /user/iteblog/.Trash/Current/user/iteblog/test.txt 路徑下,如果這個操作屬於誤操作,那么我們可以到回收站找回這個文件並直接 mv 回原來的目錄即可恢復之前的數據。不過這個功能的前提是要求我們啟用 fs.trash.interval 參數,默認是 0 代表不啟用垃圾箱功能。
該配置是說,文件被刪除會保留到 .Trash 目錄下一天,超過這個時間被刪除的文件就會真正被刪除。所以為了誤刪除操作,強烈建議開啟 HDFS 回收站功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM