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自学之道

相关文章
相关标签/搜索