码迷,mamicode.com
首页 > 其他好文 > 详细

HDFS 恢复某时刻删除的文件

时间:2015-11-01 15:21:43      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

Hadoop有一个“垃圾回收站”的功能,用于恢复在过去一段时间内被删除文件。若某个文件被删除了多次,你还可以恢复具体哪一次删除的文件。该功能默认是关闭状态,若想开启,需要在$HADOOP_HOME/etc/hadoop/core-site.xml文件中,添加以下配置:

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

上述的配置意思是:Hadoop会设立一个回收站,回收站每隔10分钟清空一次。

若在一个回收周期内多次删除同一个文件或目录,则Trash内会分版本保存你每次删除的文件。这就意味你可以恢复在某个时刻所删除的文件。

举个例子:

时间点 动作 Trash内容
12:40 回收站清空 empty
12:41 删除fruit.data fruit.data
12:42 重新上传fruit.data且再次删除fruit.data fruit.data,fruit.data1446352935186
12:45 重新上传fruit.data且再次删除fruit.data fruit.data,fruit.data1446352935186,fruit.data1446353100390
12:50 回收站清空 empty

根据上表,在12:41第二次删除friut.data,回收站中出现了fruit.?data1446352935186?后面的那串数字就是你删除时刻的时间戳。那么我们就可在垃圾回收站清空之前,恢复12:41或12:45删除的文件。


结合hive的使用,一般会有很多定时任务向hive中插入更新数据,那么.Trash中针对某个table就会有很多个版本的存在,若想查看某个时刻的数据,只要在Trash中把该时间的数据恢复即可,针对误删特别有用。


HDFS 恢复某时刻删除的文件

标签:

原文地址:http://my.oschina.net/ericquan8/blog/524504

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!