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;       
}

回收站 相当于 从当前文件夹移动到回收站
但是回收站有时效限制 要注意

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