Hadoop如何恢復被刪除的文件


  hadoop的hdfs中被刪除文件的恢復原理和回收站原理是一樣的,就是在刪除hdfs文件時,被刪除的文件被移動到了hdfs的.Trash文件夾中,恢復時只需將該文件夾中文件拿出即可。具體操作如下:

1 設置.Trash文件夾

    如果需要恢復hdfs中文件,就需要設置.Trash,hadoop的.Trash默認是關閉的。具體設置如下:

    <property>
          <name>fs.trash.interval</name>
          <value>10080</value>
    </property>

    該配置項在core-site.xml中,fs.trash.interval代表刪除的文件保留的時間,時間單位為分鍾,默認為0代表不保存刪除的文件。我們只需要設置該時間即可打開.Trash。

2 設置后刪除文件會顯示刪除的文件被移動到了hdfs://192.168.1.100:9000/user/hadoop/.Trash/Current中,舉例如下:

    14/10/20 16:48:24 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 10080 minutes, Emptier interval = 0 minutes.
    Moved: 'hdfs://10.207.0.217:9000/test_out/mr-20141017111556' to trash at: hdfs://192.168.1.100:9000/user/hadoop/.Trash/Current

3 恢復時只需要將.Trash中文件移動到我們設置的目錄即可,例如將.Trash中test1文件移動到/test目錄,

    bin/hadoop fs -mv /user/hadoop/.Trash/Current/test1 /test

4 徹底刪除hdfs文件

    徹底刪除hdfs文件即將.Trash中文件徹底刪除,這樣才能是否被刪 除文件所占用的hdfs空間,第2步中的刪除方式hdfs不會釋放空間,只是將需要刪除的文件移動到了垃圾箱。.Trash其實只是hdfs中的一個目 錄,只要刪除該文件夾中的文件即可徹底刪除該文件,原理相當於刪除了回收站中的文件,該文件即被徹底刪除。該項一般很少用,一般hdfs空間不夠用才會用 到。刪除.Trash中文件舉例如下:

    bin/hadoop fs -rm -r /user/hadoop/.Trash/Current/test1

 

  原創文章歡迎轉載,轉載時請注明出處。

  作者推薦文章:Java自學之道

 


免責聲明!

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



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