HDFS文件误删除之恢复

启动HDFS的垃圾回收站为了防止误删,一般默认是关闭的,需要我们自己配置文件打开。

修改core-site.xml

   
               fs.trash.interval
               1440
              
    

    
               fs.trash.checkpoint.interval
               1440
              
    

----------------------------------------------------------------------------------
    
一般垃圾回收站的路径是HDFS上的 /user/用户名/.Trash/
hadoop fs -ls /user/hadoop/.Trash/Current/   被删除的文件会保存在Current这个目录下,也会以时间戳为目录名

演示例子:
上传文件 hadoop fs -put my.cnf /
删除文件 hadoop fs -rm -r /my.cnf
提示:
18/07/21 11:39:17 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1440 minutes, Emptier interval = 1 minutes.
18/07/21 11:39:17 INFO fs.TrashPolicyDefault: Moved: 'hdfs://bd1803/my.cnf' to trash at: hdfs://bd1803/user/cry/.Trash/Current/my.cnf
Moved: 'hdfs://bd1803/my.cnf' to trash at: hdfs://bd1803/user/cry/.Trash/Current

查找该被删除的文件:
hadoop fs -ls /user/cry/.Trash/Current
提示:
Found 1 items
-rw-r--r--   2 cry supergroup       1208 2018-07-21 11:38 /user/cry/.Trash/Current/my.cnf
恢复该文件:
hadoop fs -mv /user/cry/.Trash/Current/my.cnf /tmp/

---------------------------------------------------------------------------------------------------------
如果我们不想跳过垃圾回收站,直接删除某个文件,那么直接使用  hadoop fs -rm -r -skipTrash  /文件路径
    
我们想恢复被误删的文件只需要  hadoop fs -mv /user/hadoop/.Trash/Current/123.log  /指定文件路径 (假如被误删的文件为123.log)

你可能感兴趣的:(hadoop)