hadoop資源回收筒trash恢複誤刪除的檔案_namenode
最後更新:2018-08-21
來源:互聯網
上載者:User
剛剛測試Hadoop程式,一不小心把資料刪掉了~~~好在是在測試機上,不然就蛋痛了,還是設定一下hadoop的資源回收筒,以防萬一
首先:
Hadoop資源回收筒trash,預設是關閉的。
習慣了window的同學,建議最好還是把它提前開開,否則誤操作的時候,就欲哭無淚了
1.修改conf/core-site.xml,增加
Xml代碼
Xml代碼 <property> <name>fs.trash.interval</name> <value>1440</value> <description>Number of minutes between trash checkpoints. If zero, the trash feature is disabled. </description> </property>
預設是0.單位分鐘。這裡我設定的是1天(60*24)
刪除資料rm後,會將資料move到當前檔案夾下的.Trash目錄
2.測試
1)建立目錄input
Java代碼 hadoop/bin/hadoop fs -mkdir input
2)上傳檔案
Java代碼 root@master:/data/soft# hadoop/bin/hadoop fs -copyFromLocal /data/soft/file0* input
3)刪除目錄input
Java代碼 [root@master data]# hadoop fs -rmr input Moved to trash: hdfs://master:9000/user/root/input
4)參看目前的目錄
Java代碼 [root@master data]# hadoop fs -ls Found 2 items drwxr-xr-x - root supergroup 0 2011-02-12 22:17 /user/root/.Trash
發現input刪除,多了一個目錄.Trash
5)恢複剛剛刪除的目錄
Java代碼 [root@master data]# hadoop fs -mv /user/root/.Trash/Current/user/root/input /user/root/input
6)檢查恢複的資料
Java代碼
Java代碼 [root@master data]# hadoop fs -ls input Found 2 items -rw-r--r-- 3 root supergroup 22 2011-02-12 17:40 /user/root/input/file01 -rw-r--r-- 3 root supergroup 28 2011-02-12 17:40 /user/root/input/file02
6)刪除.Trash目錄(清理垃圾)
Java代碼 [root@master data]# hadoop fs -rmr .Trash Deleted hdfs://master:9000/user/root/.Trash
空間的回收
檔案刪除與恢複-使用者或者應用刪除某個檔案,這個檔案並沒有立刻從HDFS中刪除。相反,HDFS將這個檔案重新命名,並轉移到/trash目錄。當檔案還在/trash目錄時,該檔案可以被迅速地恢複。檔案在/trash中儲存的時間是可配置的,當超過這個時間,Namenode就會將該檔案從namespace中刪除。檔案的刪除,也將釋放關聯該檔案的資料區塊。注意到,在檔案被使用者刪除和HDFS空閑空間的增加之間會有一個等待時間延遲。
當被刪除的檔案還保留在/trash目錄中的時候,如果使用者想恢複這個檔案,可以檢索瀏覽/trash目錄並檢索該檔案。/trash目錄僅僅儲存被刪除檔案的最近一次拷貝。/trash目錄與其他檔案目錄沒有什麼不同,除了一點:HDFS在該目錄上應用了一個特殊的策略來自動刪除檔案,目前的預設策略是刪除保留超過6小時的檔案,這個策略以後會定義成可配置的介面。