hdfs数据误删分析与恢复

HDFS文件恢复指南
本文介绍如何通过修改HDFS配置来启用垃圾箱功能,并详细解释了如何从HDFS的editlog日志中查找并恢复已删除的文件。包括配置设置、editlog分析步骤及实际恢复命令。

一、相关参数:

1、core-site.xml  文件修改以下配置项:

1
2
3
4
5
<property>
      <name>fs.trash.interval< /name >
      <value>2880< /value >
      <description>HDFS垃圾箱设置,可以恢复误删除,配置的值为分钟数,0为禁用< /description >
< /property >




2、hdfs-default.xml 文件注意以下配置项:

1
2
3
4
5
<property>          
       <name>dfs.ha.log-roll.period< /name >
       <value>120< /value >
       <description>EditLog 日志滚动频率,单位为秒,默认是两分钟< /description >
< /property >



二、分析过程

1、找到editlog日志所在目录

查看hdfs-site.xml文件,找到fs.namenode.name.dir配置项的值,如:file:/home/hadoop-2.6.0-cdh5.5.0/dfs/name

/home/hadoop-2.6.0-cdh5.5.0/dfs/name目录下的current文件里,就是editlog文件,如下图

wKioL1bii1yBcIyCAABDtJZIgG0257.png

spacer.gif

2、使用命令查看edits_inprogress文件

1
  #hdfs oev -i edits_inprogress_0000000000000000023 -o edits_inprogress_0000000000000000023.xml

其中 -i 是输入文件名,-o是需要把解析的文件输出到该文件中

解析完成后,查看edits_inprogress_0000000000000000023.xml文件即可

3、打开文件分析

找到被删除的文件或文件夹,在edits_inprogress_0000000000000000023.xml文件中搜索相关项,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
<RECORD>
     <OPCODE>OP_RENAME_OLD< /OPCODE >
     <DATA>
       <TXID>15< /TXID >
       <LENGTH>0< /LENGTH >
       <SRC> /dat < /SRC >
       <DST> /user/root/ .Trash /Current/dat < /DST >
       <TIMESTAMP>1454315297010< /TIMESTAMP >
       <RPC_CLIENTID>6832d4f9-4fa6-4dbb-89aa-ffaa26109078< /RPC_CLIENTID >
       <RPC_CALLID>6< /RPC_CALLID >
     < /DATA >
   < /RECORD >

可以看出,HDFS中 /dat 文件是在  1454315297  时间点被移入回收站的

4、恢复文件

执行以下命令:

1
2
  
#fs -mv   /user/root/.Trash/Current/dat    /dat


进行恢复










本文转自 zouqingyun 51CTO博客,原文链接:http://blog.51cto.com/zouqingyun/1750012,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值