被误删的HDFS文件如何有效恢复
Posted 格格巫 MMQ!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了被误删的HDFS文件如何有效恢复相关的知识,希望对你有一定的参考价值。
1.回收站机制恢复
HDFS的回收站机制默认是关闭的,需要我们在配置文件core-site.xml中配置一些参数
2.快照机制恢复
HDFS快照是文件系统的只读时间点副本。可以在文件系统的子树或整个文件系统上创建快照。一个快照是一个全部文件系统、或者某个目录在某一时刻的镜像。
为目录/bigdata/snapshot创建名为snapshot-test的快照:
创建快照:
hdfs dfsadmin -allowSnapshot /bigdata/snapshot
hdfs dfs -createSnapshot /bigdata/snapshot snapshot-test
快照机制进行文件的恢复(要用cp命令,不能用mv,因为快照在这里是只读的):
hdfs dfs -cp /bigdata/snapshot/.snapshot/snapshot-test/test.txt /bigdata/snapshot
3.编辑日志(edits)恢复
文件的恢复存在以下几种情况:(主要和集群的繁忙状态有很大关系。而且通过这种方式恢复误删文件的代价很高)
1)全部恢复
2)部分恢复
3)完全没有回复
NameNode在收到删除命令时,会先将这个命令写到edits中,然后会告诉DataNode执行真正的文件删除操作。所以我们在误删文件后,需要做的是立刻停止NameNode和DataNode节点,阻止删除命令的执行。然后找到执行删除操作发生时间对应的edits日志。
HDFS命令将这个文件转换成可读的xml形式
hdfs oev -i edits_inprogress_0000000007798347582 -o edits_inprogress_0000000007798347582.xml
在edits_inprogress_000000000
以上是关于被误删的HDFS文件如何有效恢复的主要内容,如果未能解决你的问题,请参考以下文章