如何恢复Hadoop中被删除的文件
hadoop的hdfs中被删除文件的恢复原理和回收站原理是一样的,就是在删除hdfs文件时,被删除的文件被移动到了hdfs的.Trash文件夹中,恢复时只需将该文件夹中文件拿出即可。具体操作如下:
1 设置.Trash文件夹
如果需要恢复hdfs中文件,就需要设置.Trash,hadoop的.Trash默认是关闭的。具体设置如下:
该配置项在core-site.xml中,fs.trash.interval代表删除的文件保留的时间,时间单位为分钟,默认为0代表不保存删除的文件。我们只需要设置该时间即可打开.Trash。
2 设置后删除文件会显示删除的文件被移动到了hdfs://192.168.1.100:9000/user/hadoop/.Trash/Current中,举例如下:
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
3 恢复时只需要将.Trash中文件移动到我们设置的目录即可,例如将.Trash中test1文件移动到/test目录,
bin/hadoop fs -mv /user/hadoop/.Trash/Current/test1 /test
4 彻底删除hdfs文件
彻底删除hdfs文件即将.Trash中文件彻底删除,这样才能是否被删除文件所占用的hdfs空间,第2步中的删除方式hdfs不会释放空间,只是将需要删除的文件移动到了垃圾箱。.Trash其实只是hdfs中的一个目录,只要删除该文件夹中的文件即可彻底删除该文件,原理相当于删除了回收站中的文件,该文件即被彻底删除。该项一般很少用,一般hdfs空间不够用才会用到。删除.Trash中文件举例如下:
bin/hadoop fs -rm -r /user/hadoop/.Trash/Current/test1
只删除, 没有清空回收站.
这咱情况比较简单, 有一点电脑知识的朋友都知道, 文件还是存在的, 只不过躺在回收站而已. 只要到回收站把文件找出来拖回或还原就行了.
2. 删除文件后还清空了回收站
很多朋友碰到的就是这种情况,也是我们主要这中恢复误删文件的恢复. 清空了回收站(或直接删除而根本不放入回收站), 在我们眼里,好还文件已经消失了。 其实文件还是在磁盘中的,只要你的电脑磁盘的其它操作,一般来说文件都可以找回来。通过修改注册表就可以了.
先在"运行中"输入regedit 打开注册表, 找到分支 HKEY_LOCAL_MACHIME/SOFTWARE/microsoft/WINDOWS/CURRENTVERSION /EXPLORER/DESKTOP/NemeSpace
在左边空白处点击“新建”,选择“主键”,命名为“645FFO40—5081—101B—9F08—00AA002F954E”,再把右边的“默认”主键的键值设为“回收站”,退出注册表。 再重启电脑即可见到被你删除的文件。
3. 删除文件后进行了磁盘操作或格式化.
如果是这种误删文件的情况, 就不敢保证能完全成恢复文件. 这可以借助一些专门的软件来完成. 这里推荐EasyRecovery.
EasyRecovery 一款威力非常强大的硬盘数据恢复工具。能够帮你恢复丢失的数据以及重建文件系统。EasyRecovery 不会向你的原始驱动器写入任何东东,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。你可以从被病毒破坏或是已经格式化的硬盘中恢复数据。该软件可以恢复大于 8.4GB 的硬盘。支持长文件名。 被破坏的硬盘中像丢失的引导记录、BIOS 参数数据块;分区表;FAT 表;引导区都可以由它来进行恢复。