问题导读:
1.如何配置hadoop回收站机制?
2.删除hadoop文件后,被删文件被放到什么位置?
3.如何恢复被删除文件?
hadoop有垃圾回收机制,这里以hadoop2.2实验了一把,回收机制基本变化不大,hadoop2.4同样适用,但是并没有测试
Hadoop回收站trash,默认是关闭的。
建议最好还是把它提前开开,否则误操作的时候,就欲哭无泪了
1.修改conf/core-site.xml,增加
- <property>
- <name>fs.trash.interval</name>
- <value>1440</value>
- <description>Number of minutes between trash checkpoints.
- If zero, the trash feature is disabled.
- </description>
- </property>
复制代码
默认是0.单位分钟。这里我设置的是1天(60*24)
删除数据rm后,会将数据move到当前文件夹下的.Trash目录
2.测试
1)新建目录input
- hadoop/bin/hadoop fs -mkdir /input
复制代码
上面记得加上斜杠/
2)上传文件
- aboutyun@master:/usr/hadoop/etc/hadoop$ hadoop fs -copyFromLocal test /input
复制代码
编辑文件内容:
3)删除目录input
- aboutyun@master:/usr/hadoop/etc/hadoop$ hadoop fs -rm -r /input
- 14/07/04 22:20:08 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 86400000 minutes, Emptier interval = 0 minutes.
- Moved: 'hdfs://master:8020/input' to trash at: hdfs://master:8020/user/aboutyun/.Trash/Current
复制代码
(这里使用的是hadoop2.2)
4)参看当前目录
- aboutyun@master:/usr/hadoop/etc/hadoop$ hadoop fs -ls /user/aboutyun
- Found 1 items
- drwx------ - aboutyun supergroup 0 2014-07-04 22:20 /user/aboutyun/.Trash
复制代码
发现input删除,在 /user/aboutyun/多了一个目录.Trash
进一步查看.Trash,下面的内容:
5)恢复刚刚删除的目录
- aboutyun@master:/usr/hadoop/etc/hadoop$ hadoop fs -mv /user/aboutyun/.Trash/Current/input /input
复制代码
6)检查恢复的数据
- aboutyun@master:/usr/hadoop/etc/hadoop$ hadoop fs -text /input/test
- test :
复制代码
7)删除.Trash目录(清理垃圾)
- aboutyun@master:/usr/hadoop/etc/hadoop$ hadoop fs -rm -r /user/aboutyun/.Trash
- 14/07/04 22:39:14 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 86400000 minutes, Emptier interval = 0 minutes.
- Deleted /user/aboutyun/.Trash
复制代码
|