三种恢复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
如今我们无论线上还是线下选择商品的时候是不是习惯问问是不是有优惠活动,如果有的话会加速购买欲望。同样的,如果我们有准备选择Vultr商家云服务器的时候,也会问问是不是有Vultr优惠码或者优惠券这类。确实,目前Vultr商家有一些时候会有针对新注册用户赠送一定的优惠券活动。那就定期抽点时间在这篇文章中专门整理最新可用Vultr优惠码和商家促销活动。不过需要令我们老用户失望的,至少近五年我们看到Vu...
近日Friendhosting发布了最新的消息,新上线了美国迈阿密的云产品,之前的夏季优惠活动还在进行中,全场一次性45折优惠,最高可购买半年,超过半年优惠力度就不高了,Friendhosting商家的优势就是100Mbps带宽不限流量,有需要的朋友可以尝试一下。Friendhosting怎么样?Friendhosting服务器好不好?Friendhosting服务器值不值得购买?Friendho...
profitserver怎么样?profitserver是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对德国VPS(法兰克福)、西班牙v...
文件夹删不掉怎么办为你推荐
iphone5解锁苹果5手机怎么屏幕解锁中国电信互联星空互联星空是什么?是电信公司的吗?eset最新用户名密码求ESET Smart Security最新用户名和密码依赖注入依赖注入是什么意思?不兼容手机软件与系统不兼容应该怎么办安卓应用平台app应用平台有哪些 应用平台哪些godaddyGO DADDY服务器空间域名怎么样qq怎么发邮件qq怎么发文件和邮件开机滚动条电脑开机启动滚动条时间长怎么办?保护气球气球保护液可以用什么来代替?
域名申请 备案未注册域名 二级域名申请 新网域名管理 万网域名证书查询 hostigation 瓦工 Dedicated 优key gateone 外国空间 directadmin realvnc 合肥鹏博士 北京双线机房 老左来了 hdd 免费cdn 1美金 购买国外空间 更多