您的位置:首页 > 运维架构

hadoop 误删目录的恢复方法

2018-01-23 15:23 483 查看
HDFS误删数据怎么办?(所谓人有失手马有失蹄,在处理HDFS中的数据时总会遇到一些“小”意外的)

答:

别担心,正常情况下,它并没有真正的删除,而是暂时先乖乖的躺在回收站里,大约20小时后才会被彻底的清理干净;当然如果在删除操作时加上了“-skipTrash”参数,那么这份数据是无法恢复的,因此我们这边建议不要随意随意使用“-skipTrash”参数。 

那怎么把数据从回收站里弄回来呢?

目前,回收站的路径为“/数据所在Federation的user目录/删除时所用账号/.Trash/时间分隔/删除时从根开始的路径”;

好复杂,举个例子:

如果我在客户端A上用xitong账号误删除了“/home/yarn/staging”这个目录,那么首先,我们先找到“数据所在Federation的user目录”,也就是在当前误删时所使用的账号执行下述命令:

$hadoop fs -ls /user/{{}删除时所用账号};换到我这个例子里就是:$hadoop fs -ls /user*/xitong;*

这样我们就得到了我们的回收站路径:/userfd1v/xitong/.Trash; ls一下这个路径*(命令$hadoop fs -ls /userfd1v/xitong/.Trash)*我们会发现有类似下面这样的目录:

其中Current是当即删除的路径,其它以字典序排序分别对应不同的删除时间;这样Current后面跟删除的目录就能找到被删除的文件或路径了;

在例子里的命令应该为:$hadoop fs -ls /userfd1v/xitong/.Trash/Current/home/yarn/staging; 

而数据恢复,就是将这个路径move到自己正确的路径,$hadoop fs -mv /userfd1v/xitong/.Trash/Current/home/yarn/staging /home/yarn/staging_Trash

这样数据从恢复到了“*/home/yarn/staging_Trash”*这个路径将有用的数据取到正确目录,即完成数据恢复操作了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: