三种恢复HDFS上删除文件的方法我们每天都可能会操作HDFS上的文件,这就很难避免误操作,比如比较严重的误操作就是删除文件.
本文针对这个问题提供了三种恢复误删除文件的方法,希望对大家的日常运维有所帮助.
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop通过垃圾箱恢复HDFS为我们提供了垃圾箱的功能,也就是当我们执行hadoopfs-rmrxxx命令之后,文件并不是马上被删除,而是会被移动到执行这个操作用户的.
Trash目录下,等到一定的时间后才会执行真正的删除操作.
看下下面的例子:$sudo-uitebloghadoopfs-rmr/user/iteblog/test.
txtMoved:'hdfs://iteblogcluster/user/iteblog/test.
txt'totrashat:hdfs://iteblogcluster/user/iteblog/.
Trash/Current$sudo-uitebloghadoopfs-ls/user/iteblog/.
Trash/Current/user/iteblog-rw-r--r--3iteblogiteblog1032017-05-1517:24/user/iteblog/.
Trash/Current/user/iteblog/test.
txt$sudo-uitebloghadoopfs-mv/user/iteblog/.
Trash/Current/user/iteblog/test.
txt/user/iteblog/1/5$sudo-uitebloghadoopfs-ls/user/iteblog/test.
txt-rw-r--r--3iteblogiteblog1032017-05-1517:24test.
txt从上面的例子中可以看出,我们删了test.
txt文件之后,文件被移到/user/iteblog/.
Trash/Current/user/iteblog/test.
txt路径下,如果这个操作属于误操作,那么我们可以到回收站找回这个文件并直接mv回原来的目录即可恢复之前的数据.
不过这个功能的前提是要求我们启用fs.
trash.
interval参数,默认是0代表不启用垃圾箱功能.
fs.
trash.
interval1440Numberofminutesafterwhichthecheckpointgetsdeleted.
Ifzero,thetrashfeatureisdisabled.
Thisoptionmaybeconfiguredbothontheserverandtheclient.
Iftrashisdisabledserversidethentheclientsideconfigurationischecked.
Iftrashisenabledontheserversidethenthevalueconfiguredontheserverisusedandtheclientconfigurationvalueisignored.
上面的配置是说,文件被删除会保留到.
Trash目录下一天,超过这个时间被删除的文件就会真正被删除.
所以为了误删除操作,强烈建议开启HDFS回收站功能.
通过快照恢复Hadoop从2.
1.
0版本开始提供了HDFS快照(SnapShot)功能.
一个快照是一个全部文件系统、或者某个目录在某一时刻的镜像.
利用快照可以防止用户错误操作,管理员可以通过以滚动的方式周期性设置一个只读的快照,这样就可以在文件系统上有若干份只读快照.
如果用户意外地删除了一个文件,就可以使用包含该文件的最新只读快照来进行恢复.
下面我们来实操说明如何利用快照恢复误删除的文件:创建目录和文件$sudo-ubizdatahadoopfs-mkdir/user/iteblog/important/$echo"importantdata"|sudo-uitebloghadoopfs-put-/user/iteblog/important/important-file.
txt$sudo-uitebloghadoopfs-cat/user/iteblog/important/important-file.
txtimportantdata2/5上面我们创建了/user/iteblog/important/目录,里面有一个文件important-file.
txt,假设这个文件是非常重要的.
创建快照$sudo-uitebloghadoopdfsadmin-allowSnapshot/user/iteblog/important$sudo-uitebloghadoopfs-createSnapshot/user/iteblog/importantimportant-snapshot现在我们已经为important目录创建了快照,名称为important-snapshot.
误删除操作因为开启了快照功能,我们无法删除已经创建快照的目录(/user/iteblog/important),但是我们依然可以删除这个目录下的文件;$sudo-uitebloghadoopfs-rm-r/user/iteblog/important/important-file.
txt现在这个重要的文件被我们误删除了!
恢复文件别急,因为我们开启了快照,所有我们可以从快照中恢复这个文件,步骤如下:$sudo-uitebloghadoopfs-ls/user/iteblog/important/.
snapshot/$sudo-uitebloghadoopfs-cp/user/iteblog/important/.
snapshot/important-snapshot/important-file.
txt/user/iteblog/important/$sudo-uitebloghadoopfs-cat/user/iteblog/important/important-file.
txtimportantdata通过上面几步,我们已经恢复了误删除的重要文件.
通过编辑日志恢复3/5关于Hadoop的编辑日志介绍请参见:《Hadoop文件系统元数据fsimage和编辑日志edits》.
如果你的Hadoop集群没有开启回收站功能,也没有对重要的数据创建快照,这时候如果有人将一份非常重要的数据误删除了,那我们如何恢复这些数据答案是通过修改编辑日志,但是通过这种方法不一定能恢复已经被删除的文件,或者只能恢复一部分被删除的文件,也可能恢复全部误删除的数据,这个和你的集群繁忙状态有很大的关系.
而且通过这种方式恢复误删除的文件代价很高,风险很大,需要谨慎使用.
下面我来介绍通过这种恢复删除数据的步骤.
删除文件sudo-uitebloghadoopfs-rmr-skipTrash/user/iteblog/important-file.
txt由于上面删除操作使用了-skipTrash参数,这意味着这个文件会被直接删除,并不会先放到回收站.
恢复数据NameNode在收到删除命令时,会先将这个命令写到编辑日志中,然后会告诉DataNode执行真正的文件删除操作.
所以我们需要做的是立刻停止NameNode和DataNode节点,阻止删除命令的执行.
然后找到执行rmr操作发生时间对应的编辑日志,假设是edits_inprogress_0000000000000001512,这个文件是二进制的形式,我们需要通过HDFS自带的命令将这个文件转换成可读的形式,如下:$hdfsoev-iedits_inprogress_0000000000000001512-oedits_inprogress_0000000000000001512.
xml上面执行的结果是二进制的编辑日志被转换成我们人类可读的xml格式的文件,我们找到执行删除important-file.
txt文件的命令记录:OP_DELETE16240/user/iteblog/important-file.
txt4/5151572419836234809cac-a89f-4113-98b5-10c54d7aac1a1OP_DELETE这个标记就是删除操作,我们将这个标记修改成比较安全的操作(比如OP_SET_PERMISSIONS),如果这个命令是在最后,可以直接删除,然后保存.
再将修改后的编辑日志转换成计算机能够识别的格式:$hdfsoev-iedits_inprogress_0000000000000001512.
xml-oedits_inprogress_0000000000000001512-pbinary最后启动NameNode和DataNode节点,后面就看你的造化了.
本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载.
本文链接:【】()PoweredbyTCPDF(www.
tcpdf.
org)5/5
hosteons当前对美国洛杉矶、达拉斯、纽约数据中心的VPS进行特别的促销活动:(1)免费从1Gbps升级到10Gbps带宽,(2)Free Blesta License授权,(3)Windows server 2019授权,要求从2G内存起,而且是年付。 官方网站:https://www.hosteons.com 使用优惠码:zhujicepingEDDB10G,可以获得: 免费升级10...
profitserver正在对德国vps(法兰克福)、西班牙vps(马德里)、荷兰vps(杜廷赫姆)这3处数据中心内的VPS进行5折优惠促销。所有VPS基于KVM虚拟,纯SSD阵列,自带一个IPv4,不限制流量,在后台支持自定义ISO文件,方便大家折腾!此外还有以下数据中心:俄罗斯(多机房)、捷克、保加利亚、立陶宛、新加坡、美国(洛杉矶、锡考克斯、迈阿密)、瑞士、波兰、乌克兰,VPS和前面的一样性...
在前面的文章中就有介绍到半月湾Half Moon Bay Cloud服务商有提供洛杉矶DC5数据中心云服务器,这个堪比我们可能熟悉的某服务商,如果我们有用过的话会发现这个服务商的价格比较贵,而且一直缺货。这里,于是半月湾服务商看到机会来了,于是有新增同机房的CN2 GIA优化线路。在之前的文章中介绍到Half Moon Bay Cloud DC5机房且进行过测评。这次的变化是从原来基础的年付49....
文件夹删不掉怎么办为你推荐
网站运营我想成为网站运营的人我该学什么??彩信中心短信中心号码是多少机械键盘轴机械键盘的轴哪种好?iphone6上市时间苹果6什么时候出来网站优化方案网站优化方案如何写?发邮件怎么发如何发邮件?声母是什么声母是什么?单韵母是什么声母是什么什么是声母qq等级表谁能告诉我QQ等级列表?qq等级表QQ等级天数表
虚拟主机评测网 a5域名交易 中国万网域名 132邮箱 美国翻墙 国外服务器 tk域名 商家促销 全能主机 英文站群 anylink 域名转向 可外链网盘 免费测手机号 ca187 备案空间 iki 贵阳电信 畅行云 中国联通宽带测速 更多