如何恢复hdfs删除的文件



有人问我以下问题。

采访者:如何在hdfs中恢复已删除的文件。我:从垃圾目录我们可以复制/移回原来的目录。记者:除了回收垃圾,还有别的办法吗。我:我说不。

所以我的问题是,是否真的有任何方法可以恢复删除的文件,或者面试官只是让我测试一下我的信心。

我发现了下面的恢复方法,它不同于hdfs-cp/mv,但它也从垃圾中获取文件。

hadoop distcp-D ipc.client.fackback to simple auth allowed=true-D dfs.checksum.tpe=CCRC32C-m 10-pb-update/users/vijay/.Trash//application/data/vijay;

Hadoop从2.1.0版本开始提供HDFS快照(snapshot(功能你可以尝试使用它

首先,创建SnapShot

hdfs dfsadmin -allowSnapshot /user/hdfs/important
hdfs dfs -createSnapshot /user/hdfs/important important-snapshot

接下来,尝试删除一个文件

hdfs dfs -rm -r /user/hdfs/important/important-file.txt

最后,恢复

hdfs dfs -ls /user/hdfs/important/.snapshot/
hdfs dfs -cp /user/hdfs/important/.snapshot/important-snapshot/important-file.txt /user/hdfs/important/
hdfs dfs -cat /user/hdfs/important/important-file.txt

p.S:你必须使用CP命令(而不是MV命令(以这种方式恢复删除的文件,因为快照中删除的文件只是读取文件

希望我的答案能帮助你

最新更新