Hadoop如何恢復被刪除的文件

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

1 設置.Trash文件夾
oop

    若是須要恢復hdfs中文件,就須要設置.Trash,hadoop的.Trash默認是關閉的。具體設置以下:spa

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

    該配置項在core-site.xml中,fs.trash.interval表明刪除的文件保留的時間,時間單位爲分鐘,默認爲0表明不保存刪除的文件。咱們只須要設置該時間便可打開.Trash。xml

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

    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
hadoop

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

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

4 完全刪除hdfs文件io

    完全刪除hdfs文件即將.Trash中文件完全刪除,這樣才能是否被刪 除文件所佔用的hdfs空間,第2步中的刪除方式hdfs不會釋放空間,只是將須要刪除的文件移動到了垃圾箱。.Trash其實只是hdfs中的一個目 錄,只要刪除該文件夾中的文件便可完全刪除該文件,原理至關於刪除了回收站中的文件,該文件即被完全刪除。該項通常不多用,通常hdfs空間不夠用纔會用 到。刪除.Trash中文件舉例以下:

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

 

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

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

相關文章
相關標籤/搜索