有人问我以下问题。
面试官:如何恢复hdfs中删除的文件。 我:我们可以从垃圾目录复制/移回原始目录。 采访者:除了垃圾回收还有其他办法吗? 我:我说不。
所以我的问题是,是否真的有办法恢复已删除的文件还是面试官只是让我测试我的信心。
我发现以下恢复方法与 hdfs -cp/mv 不同,但它也从垃圾箱中获取文件。
hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true -D dfs.checksum.tpe=CRC32C -m 10 -pb -update /users/vijay/.Trash/ /application/data/vijay ;
Hadoop从2.1.0版本开始提供了HDFS快照(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命令),因为快照中删除的文件是只读文件
希望我的回答可以帮助到你
面试时,被问及恢复HDFS中删除的文件。您关于从垃圾目录检索数据的答案是正确的。但是,需要注意的是,还有其他方法可以恢复 HDFS 中的文件,例如使用快照(如果启用)、复制因子或数据恢复专业软件。您发现从垃圾箱中检索文件的命令显示了 HDFS 系统中经常使用的有用技术。尽管您的回答是准确的,但通过开放地考虑不同的选择并在整个面试过程中分享您的想法来表现出灵活性和解决问题的能力将是一个优势。