Hadoop 回收站trash

和Linux系統的回收站設計一樣,HDFS會爲每一個用戶創建一個回收站目錄:/user/用戶名/.Trash/,每一個被用戶通過Shell刪除的文件/目錄,在系統回收站中都一個週期,也就是當系統回收站中的文件/目錄在一段時間之後沒有被用戶回覆的話,HDFS就會自動的把這個文件/目錄徹底刪除,之後,用戶就永遠也找不回這個文件/目錄了。

配置:在每個節點(不僅僅是主節點)上添加配置 core-site.xml,增加如下內容

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

實現Java api操作時存入回收站


public static boolean rm(FileSystem fs, Path path, boolean recursive,              boolean skipTrash) throws IOException {        
            if (!skipTrash) {             
             Trash trashTmp = new Trash(fs, conf);             
             if (trashTmp.moveToTrash(path)) {                
                         log.info("Moved to trash: " + path);                
                return true;            
           }         
        }         
      boolean ret = fs.delete(path, recursive);        
     if (ret)             
       log.info("rm: " + path);         
return ret;       
}

回收站 相當於 從當前文件夾移動到回收站
但是回收站有時效限制 要注意

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章