hdfs数据误删后恢复方式

HDFS文件误删怎么办,一招教你恢复回来,再也不用担心删库跑路了 本文基于 Hadoop3.1.2版本讲解 HDFS 文件删除过程 下面是hdfs删除路径的方法,源码路径org.apache.hadoop.hdfs.server.namenode.FSNamesystem.delete() /** * Remove the indicated file from namespace. * * @see ClientProtocol#delete(String, boolean) for detailed description and . 阅读详情

我们知道hdfs是hadoop体系上的文件系统,负责具体的数据文件存储,且如果一旦hdfs文件被误删除后,尤其是重要数据,对公司来说影响非常大。所以需要提前做一些安全预防措施,例如使用Hdfs Trash机制,或者重要目录应用Hdfs SnapShot功能,然后针对于删除的文件或者目录可以通过trash或者SnapShot机制来进行恢复,如果数据确实已经删除了(例如直接通过hadoop api进行delete,未配置SnapShot),如果想恢复数据,就需要快速采取一定的措施了。下面我们来分别介绍下这些恢复数据的使用方式与机制。

Hdfs Trash(回收箱)

对于线上生产环境的HDFS,开启回收站功能是必不可少的。该功能类似于linux系统的回收站设计,HDFS会为每个用户创建一个专属的回收站目录(/user/${user.name}/.Trash),用户删除文件时,实际上是被移动到了回收站目录。用于预防当用户误删HDFS上的数据时,能够及时从回收站恢复这些数据(当然回收站是防不住删库跑路的)。

使用这种方式的前提是在hdfs上面开启trash功能,默认是没有开启的。interval的值默认为0,单位是分钟。只需要在hadoop的配置文件core-site.xml中添加下面的内容:

<!--Enable Trash --><property>      <name>fs.trash.interval</name>      <value>120</value></property><property>      <name>fs.trash.checkpoint.interval</name>      <value>120</value></property>

添加好上述内容后,不需要重启后台程序,直接就会生效。大数据培训​​​​​​​执行删除操作后,会先将文件移动到当前操作用户的.Trash/Current目录下面。

Hdfs SnapShot(快照)

hadoop从2.1版本后开始支持HDFS快照(SnapShot)功能,

  • 快照创建瞬时性:除去inode的查询时间,算法消耗O(1)复杂度。

只有在对快照修改时才会消耗额外内存:内存使用O(M),M是被修改的文件或者目录数。

  • DataNode的block不被复制:快照文件记录block列表和文件大小。不做数据的拷贝复制。

  • 快照不会对正常HDFS操作产生不利影响:所有的修改都按照时间倒序排序,因此当前数据总能被直接访问到。快照数据是根据与当前数据进行变更部分的差值计算得来的。

使用实例:

使用方式:#创建快照:hdfs fs  -allowSnapshot  /testhdfs fs -put  test.txt   /testhdfs fs  -createSnapshot  /test   import_data #将test文件删除:hdfs fs -rmr  /test/test.txt #误删除后就可以使用快照目录进行恢复:hdfs  fs  -cp /test/.snapshot/import-data/test.txt  /text

恢复数据

然而如果直接调用hadoop delete api进行删除操作,是默认不会走trash机制的,同时也未配置快照功能的情况下,文件所对应的block数据已经开始真正从底层文件系统层面进行删除,此时需要快速的做出决断进行恢复操作。因为需要停止数据服务(nn、dn),所以需要综合考虑,去权衡恢复数据和停服对线上服务的影响两者之间的利害关系。

首先梳理下hdfs delete的流程,如下图:

我们可以看到hdfs delete流程中很多环节都是异步进行操作的,所以如果想恢复数据,需要立即做出决定是否进行停服,可以恢复的数据量也取决于操作与停服间隔时间,还有集群的繁忙程度,所以可能恢复全部或者部分数据,如果时间过了很久了,在集群规模比较大、集群比较空闲的情况下,可恢复的数据量百分比就不能太乐观了。下面我们来说明下具体恢复步骤(说明:操作的前提是有删除操作之前的fsimage元数据,同时需要有备用的新集群):

1. 及时停止hdfs集群服务(nn、dn),阻止block数据从os上进一步被删除;

由上述的hdfs delete流程可知namenode删除block指令是通过datanode心跳一批批下发的,且datanode是通过异步线程删除block数据, 所以需要立即停止服务进程,阻止datanode上的block文件进一步被删除;

2. 拷贝删除数据前的元数据fsimage文件,并在新集群namenode加载

2.1) 通过hdfs审计log找到删除操作开始的确切时间点;

2.2) 从fsimage备份的多个版本中,找到删除操作时间点前的fsimage;

2.3) 停掉新集群所有进程(保留journalnode),初始化新环境;

2.4) 停掉所有journalnode进程,在image目录替换为备份的fsimage文件,替换imaeg、edits、和所有journalnode目录下的VERSION文件为生产环境上的VERSION文件;

2.5) 启动namenode进程;

3. 用fsck在新集群namenode获取数据块blockid,生成列表文件

./bin/hadoop fsck 误删目录  -files -blocks  (通过脚本生成blockid列表文件)

4. 从原集群datanode上拷贝blockid对应的文件到新集群datanode

4.1) 在原集群每个datanode上生成要拷贝的blockid文件目录列表(编写脚本通过ancible执行)

4.2) 统计可以检索出来的存在的blockid文件数量(按照blockid去重)和总blockid数量的比例,根据比例情况判断数据恢复操作是否继续进行;

4.3) 在原集群每个datanode上拷贝blockid对应文件到新集群datanode(编写脚本通过ancible执行,scp,如果有多副本需要copy到不同datanode节点上)

4.4) 对比验证copy到新集群datanode节点上文件数量;

5. 启动新集群datanode,检查新集群恢复的数据量,文件数据可用性

5.1) 启动新集群上所有datanode;

5.2) 检查恢复的文件数据量,测试文件数据的可用性

6. 恢复老集群服务

启动hdfs集群所有节点的服务进程;

7.从新集群distcp hdfs文件回老集群 

以上就是关于hdfs数据误删后数据恢复的步骤,有疑问或者错误的地方的欢迎沟通和指正。

HDFS和Hbase误删数据恢复 1.hdfs的回收站机制         客户有时会误删一下数据,是在生产环境下,误删数据会造成非常严重的后果。 2.hbase表删除恢复 如果disable+drop误删了hbase表数据,数据不会放到回收站中,hbase有自己的一套删除策略。 fs.trash.interval=0         以分钟为单位的垃圾回收时间,垃圾站中数据超过此时间,会被删除。如果是0, 阅读详情

相关推荐

如何恢复在HDFS中删除的文件

       在大数据平台中,hdfs里面如果误删除文件后,我们需要对文件进行恢复,但是如果没有做相关配置,或者预先做设置,则会导致灾难性的后果,o(╥﹏╥)o       我们可以通过下面几种方式来恢复误删除文件:       在垃圾回收站中恢复:hdfs中提供类似其他文件系统中的垃圾回收站的功能,被删除的文件会被移动到该回收站中,也就是有的同学想要腾出空间,使用了hadoop fs -rmr ...

hotbigdata的博客 5683

恢复HDFS上误删除的文件

HDFS 为我们提供了垃圾箱的功能,也就是说当我们执行 hadoop fs -rmr xxx命令之后,文件并不是马上被删除,而是会被移动到,等到一定的时间后才会执行真正的删除操作。从上面的例子中可以看出,在我们删了 test.txt 文件之后,文件被移到路径下,如果这个操作属于误操作,我们则可以到回收站找回这个文件并直接mv回原来的目录,即可恢复之前的数据。不过使用这个功能的前提是我们配置了 fs.trash.interval参数,默认是 0,代表不启用垃圾箱功能。</</</</

第一片心意的博客 2481

被误删的HDFS文件如何有效恢复

NameNode在收到删除命令时,会先将这个命令写到edits中,然后会告诉DataNode执行真正的文件删除操作。所以我们在误删文件后,需要做的是立刻停止NameNode和DataNode节点,阻止删除命令的执行。OP_DELETE代表删除操作,可以将这个标记修改为安全的操作(如OP_SET_PERMISSIONS),如果这个命令在最后,可以直接删除,然后保存。文件的恢复存在以下几种情况:(主要和集群的繁忙状态有很大关系。最后再启动NameNode和DataNode节点,查看误删文件的恢复情况。...

萌兔兔MMQ!! 1636

三种恢复 HDFS 上删除文件的方法

本文转自两篇博文: 过往记忆:https://www.iteblog.com/archives/2321.html?from=related https://www.cnblogs.com/cuishuai/p/8288976.html 三种恢复 HDFS 上删除文件的方法 我们每天都可能会操作 HDFS 上的文件,这就很难避免误操作,比如比较严重的误操作就是删除文件。本文针对这个问题提...

renzhewudi77的博客 967

Hadoop回收站恢复已删除文件的服务器

在这篇文章中,我们将探讨如何使用Hadoop回收站(trash)来恢复已删除的文件。它提供了一个可靠的文件系统Hadoop分布式文件系统(HDFS),并且拥有回收站功能,可以在文件被删除后进行恢复。通过执行上述步骤,您可以使用Hadoop回收站来恢复已删除的文件。请注意,文件只能在回收站保留的时间范围内进行恢复,因此请尽快执行恢复操作以避免文件被永久删除。通过合理利用回收站功能,可以提高数据的安全性和可靠性,减少意外删除数据造成的损失。这将显示回收站中的文件列表,包括文件的权限、大小、修改日期等信息。

YjKubernetes的博客 825

如何有效恢复误删的HDFS文件

快照的一些常见用例是数据备份,利用快照可以对重要数据进行恢复,防止用户错误性的操作,管理员可以通过以滚动的方式周期性设置一个只读的快照,这样就可以在文件系统上有若干份只读快照。对做快照之后的数据进行的更改将会按照时间顺序逆序的记录下来,用户访问的还是当前最新的数据,快照里的内容为快照创建的时间点时文件的内容减去当前文件的内容。然后找到执行删除操作发生时间对应的edits日志。新建快照的时候,Datanode中的block不会被复制,快照中只是记录了文件块的列表和大小信息快照不会影响正常的HDFS的操作。..

萌兔兔MMQ!! 627

HDFS文件误删怎么办,一招教你恢复回来,再也不用担心删库跑路了_hdfs表被删了,怎么看操作记录

BlockManager中有个方法的特性决定了hdfs删除数据并不会立即真正的执行物理删除,并且一次删除的数量也有限,,虽然有的数据在轮循中已被删除,所以事发后停止HDFS集群越早,被删的数据越少,损失越小!

2501_90330678的博客 1187

VIVADO中的IP核在MATLAB中仿真

VIVADO中的IP核在MATLAB中仿真项目简述VIVADO建立FFT IP核MATLAB调用FFT IP核 项目简述 我们都会用MATLAB进行算法验证,但是经常会发现如果VIVADO中调用了IP核,那么最终会发现VIVADO与MATLAB之间的数据不可以统一的对应起来。那么,MATLAB验证的效果就会大大下降,那么可不可以想办法将VIVADO中的IP核封装成一个函数在MATLAB中调用呢?答案是可以的。这篇博客主要以FFT的IP核为例讲解封装成一个函数并且成功在MATLAB中调用。 本次实验所使用的软

zhangningning1996的博客 6989

HDFS快照机制深度解析:原理、实现与数据恢复实战

HDFS快照是文件系统在某一时刻的只读副本。数据备份:为关键数据创建时间点副本误操作保护:防止用户误删除或误修改灾难恢复:在数据损坏时快速回滚实验验证:在不影响生产数据的前提下进行测试轻量级创建:O(1)时间复杂度,瞬时完成低成本存储:只记录差异,几乎不占用额外空间快速恢复:通过.snapshot路径直接访问和复制灵活管理:支持创建、删除、重命名和差异分析通过合理配置快照策略,结合回收站、副本机制和跨集群备份,可以构建完整的多层次数据保护体系,确保HDFS集群中数据的安全性和可恢复性。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2238

Wi-Fi Sigma测试系统

Wi-Fi Sigma测试系统是Wi-Fi联盟(WFA)提出的一套全自动的WiFi认证测试系统,几乎涵盖的所有Wi-Fi的功能及性能(throughput)的自动化测试。该系统正逐步取代以前的WiFi认证测试系统。

Ke8323的博客 1万+

Obsidian笔记同步实战:基于Git的私有化部署与自动化管理

本文详细介绍了如何利用Git为Obsidian笔记构建私有化、自动化且免费的同步方案。通过安装配置Git与Obsidian-git插件,结合Gitee等远程仓库,实现笔记的版本管理、多设备同步与自动备份,打造安全可靠的知识管理体系。

y7z8a的博客 272

HDFS误删数据如何恢复

今天在用linux命令查询hdfs数据时。因为之前刚把测试环境删除,所以执行了 hadoop fs -rm -r /warehouse/hdw/ods/ods_tbl_et_live_message_log_test 接下来准备去查询正式表的时候,把test去掉之后就直接执行了。整个目录都被我干掉了。。。。 心慌一下忽然想起来可以恢复,感觉去操作了一波,但是要引以为戒。。接下来上正事: HDFS 为我们提供了垃圾箱的功能,也就是当我们执行hadoop fs -rm -r xxx命令之后,文件...

weixin_42594269的博客 1924

ENVI 5.6保姆级教程:高分七号DLC影像从打开到融合的完整流程(附避坑指南)

本文详细介绍了ENVI 5.6处理高分七号DLC影像的完整流程,包括环境准备、数据解压、正射校正、图像融合等关键步骤。特别针对国产卫星数据处理的独特挑战,提供了实用的避坑指南和优化技巧,帮助用户高效完成光学影像的预处理和质量提升。

weixin_33269743的博客 380

误删除HDFS文件的终极恢复

概述 使用过HDFS的同学都知道,HDFS有垃圾回收站的功能,当你误删除文件的时候,HDFS会把文件存储到你所在用户的垃圾回收站中,想要恢复文件,只需要从垃圾回收站中找回,当然必须在垃圾回收站的指定日期中。这个是正常的操作。 下面我说一个不正常的操作,如果你的垃圾回收站的间隔日期设置的比较大,当你需要执行大量MR任务时候,就会存在很多垃圾日志存储到你的回收站中,这样就占用了系统大量的存储资。为了解决这个问题,于是想到了如果跳过回收站去删除文件不就可以了。接着执行了一下的指令: hdfs dfs -rm -R

有信仰的蜗牛 3175

基于OpenCV和Dlib的头部姿态估计详细教程

本文详细介绍了基于OpenCV和Dlib的头部姿态估计方法。通过分析2D人脸特征点与3D头部模型的对应关系,利用PnP(Perspective-n-Point)算法求解头部在三维空间中的姿态。文章首先阐述了坐标系统转换原理,包括世界坐标系、相机坐标系和图像坐标系的转换关系,随后深入讲解了PnP问题的数学表述及求解步骤,并提供了使用Dlib检测68个面部特征点的代码示例。最后介绍了3D通用头部模型的构建方法,包括6点和14点模型的选择,为计算机视觉中的头部姿态估计提供了完整的技术实现方案。

FJN110的博客 334

今日指数项目之实时流数据采集【六】

实时数据采集代码

Maynor的博客 2146

Hbase恢复误删数据

1.hdfs的回收站机制     客户有时会误删一些数据,在生产环境下,误删数据会造成非常严重的后果。     在hdfs上有一个回收站的设置,可以将删除的数据存在目录”/user/$/.Trash/”中,设置回收站的参数如下: fs.trash.interval=0     以分钟为单位的垃圾回收时间,垃圾站中数据超过此时间,会被删除。如果是0,垃圾回收机

摩西YF拉比 5916

如何在飞腾平台上安装Ubuntu操作系统

注意: 若主板上配置的是NVME硬盘,在进行内核配置时,需要将内核的NEME驱动勾选上,否则移植内核时,无法找到文件系统,进不去操作系统。可以通过rufus软件将镜像做到U盘中,本次使用版本为Rufus 3.9.124 ,其他版本也可以。不要下载live版本的,没有准备网络环境,是一个头疼的事情,笔者暂时没有实现网络安装。将U盘接到主板usb口上,接上串口,显示器,,必需串口有打印才可以安装。可以通过dd命令,将iso安装到U盘。安装的是最小系统,缺少很多命令,需要联网更新,或则更换飞腾专用内核。

技术联盟 2639

大数据开发之被误删的HDFS文件如何有效恢复

大数据开发之被误删的HDFS文件如何有效恢复

Data & Analysis 918

44、单级静态电流消耗最小化方法及功率优化比较器设计

本文探讨了单级静态电流消耗最小化方法及功率优化的多米诺逻辑比较器设计。通过分析类“AB”输入CMOS差分对电路,提出利用补偿电流源实现高低电流模式切换,提升运算放大器性能;结合VTCMOS与时钟门控技术,在90nm CMOS中设计低功耗比较器,并采用多米诺逻辑提高速度与能效。通过对比传统与改进型多米诺逻辑的静态功耗、动态功耗、延迟和PDP,验证了所提方案在高性能与低功耗方面的优势,适用于便携式设备等对能效要求严苛的应用场景。

pp12345的博客 120

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

在hdfs中创建用户目录_如何有效恢复误删的HDFS文件

HDFS是大数据领域比较知名的分布式存储系统,作为大数据相关从业人员,每天处理HDFS上的文件数据是常规操作。这就容易带来一个问题,实际操作中对重要数据文件的误删,那么如何恢复这些文件,就显得尤为重要。本文针对误删HDFS文件的问题,通过利用HDFS的内部机制,提供了以下几种方法:1.回收站机制恢复HDFS提供了回收站功能,当我们执行hdfs dfs -rm -r some_file命令...

weixin_39571404的博客 314

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

大数据开发技术之被误删的HDFS文件如何有效恢复

HDFS是大数据领域比较知名的分布式存储系统,作为大数据相关从业人员,每天处理HDFS上的文件数据是常规操作。这就容易带来一个问题,实际操作中对重要数据文件的误删,那么如何恢复这些文件,就显得尤为重要。 本文针对误删HDFS文件的问题,通过利用HDFS的内部机制,提供了以下几种方法: 1.回收站机制恢复 HDFS提供了回收站功能,当我们执行hdfs dfs -rm -r some_file命令后,文件不会被立即删除。而是先将要删除的数据移动到当前用户的.Trash目录下,待超过一定时间(可通过参数配置

m0_58371965的博客 389

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hdfs mv命令_如何有效恢复误删的HDFS文件

HDFS是大数据领域比较知名的分布式存储系统,作为大数据相关从业人员,每天处理HDFS上的文件数据是常规操作。这就容易带来一个问题,实际操作中对重要数据文件的误删,那么如何恢复这些文件,就显得尤为重要。本文针对误删HDFS文件的问题,通过利用HDFS的内部机制,提供了以下几种方法:1.回收站机制恢复HDFS提供了回收站功能,当我们执行hdfs dfs -rm -r some_file命令...

weixin_33473110的博客 398

HDFS数据误删除?别慌!4种恢复方法+预防策略全解析

HDFS数据误删恢复全攻略:从回收站到快照的完整解决方案 摘要:本文系统介绍了HDFS数据误删除后的恢复方法,涵盖回收站恢复、快照恢复、副本机制恢复和编辑日志恢复四种场景。针对不同误删情况,提供了详细的操作命令和避坑指南,包括如何紧急处理、分场景恢复数据以及常见问题排查。同时强调了预防措施的重要性,建议强制开启回收站、定期创建快照、合理设置副本数等预防策略。文章指出,掌握正确的恢复方法并做好预防工作,能有效降低HDFS数据误删风险,确保数据安全。

hao521yun的博客 737
上一篇: Redis持久化RDB和AOF区别
下一篇: React应用(基于React脚手架)
IT小谷
码龄5年 33粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值