Hadoop2.6.0防止误删机制-Trash

来源:互联网 发布:mastercam多轴编程教程 编辑:程序博客网 时间:2024/06/05 07:03

    Hadoop2.6.0的回收站Trash机制跟Hadoop1变化不大,建议提前打开该功能(默认关闭),防止误删时欲哭无泪。

1、修改/etc/hadoop/core-site.xml,增加如下配置:

    <!-- 开启hdfs文件删除自动转移到垃圾箱,值为垃圾箱文件清除时间,单位是分钟。一般开启该配置比较好,防止删除重要文件。 -->

    <property>  

        <name>fs.trash.interval</name>

        <value>1440</value><!-- 默认为0,单位为分钟,这里设置了一天 -->

    </property>

2、然后测试该功能,随便找个目录执行删除操作:hdfs dfs -rm -r /tmp/input。删除后会发现有如下类似提示:

        Moved: 'viewfs://hCluster/tmp/input' to trash at: hdfs://hadoop-cluster1/user/hadoop2/.Trash/Current

    hdfs://hadoop-cluster1/core-site.xml中引入的mountTable.xml里的设置

    查看hdfs://hadoop-cluster1/,使用命令:

        hdfs dfs -ls hdfs://hadoop-cluster1/

    会发现其中多了hdfs://hadoop-cluster1/user目录,刚删除的目录在hdfs://hadoop-cluster1/user/hadoop2/.Trash/Current/tmp/input

3、从Trash恢复删除文件,执行:

        hdfs dfs -mv hdfs://hadoop-cluster1/user/hadoop2/.Trash/Current/tmp/input hdfs://hadoop-cluster1/tmp/input

    如果直接执行hdfs dfs -mv hdfs://hadoop-cluster1/user/hadoop2/.Trash/Current/tmp/input /tmp/input会提示mv: `hdfs://hadoop-cluster1/user/hadoop2/.Trash/Current/tmp/input': Does not match target filesystem,具体原因应该是文件系统不匹配。

4、直接删除文件

开启垃圾箱后,如果希望文件直接被删除,可以在使用删除命令时添加“–skipTrash参数,如下:

hadoop fs -rm [-r] -skipTrash /xxxx

 

0 0