三种恢复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
HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。目前商家发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付5.95美元起。下面分别列出几款主机套餐配置信息。套餐:韩国KR...
Webhosting24宣布自7月1日起开始对日本机房的VPS进行NVMe和流量大升级,几乎是翻倍了硬盘和流量,价格依旧不变。目前来看,日本VPS国内过去走的是NTT直连,服务器托管机房应该是CDN77*(也就是datapacket.com),加上高性能平台(AMD Ryzen 9 3900X+NVMe),还是有相当大的性价比的。此外在6月30日,又新增了洛杉矶机房,CPU为AMD Ryzen 9...
腾讯云双十一活动已于今天正式开启了,多重优惠享不停,首购服务器低至0.4折,比如1C2G5M轻量应用服务器仅48元/年起,2C4G8M也仅70元/年起;个人及企业用户还可以一键领取3500-7000元满减券,用于支付新购、续费、升级等各项账单;企业用户还可以以首年1年的价格注册.COM域名。活动页面:https://cloud.tencent.com/act/double11我们分享的信息仍然以秒...
文件夹删不掉怎么办为你推荐
邮箱群发163的邮箱如何群发cornerradiusUG后处理可以输出自定义刀具描述吗?雅虎社区雅虎是中国的吗1433端口怎么去看1433端口http与https的区别http和https到底有什么区别啊???ps抠图技巧请教PS抠图技巧!!!网店推广网站什么平台适合做淘宝店铺推广童之磊网文大学很强吗?如何建立一个网站如何建立一个网站神雕侠侣礼包大全神雕侠侣先手礼包在哪领
中国十大域名注册商 sharktech evssl证书 hnyd 浙江独立 蜗牛魔方 合租空间 河南m值兑换 hostloc 电信网络测速器 wordpress中文主题 中国联通宽带测速 免费网络空间 中国联通宽带测试 广州服务器托管 沈阳idc cdn加速 ddos是什么 代理服务器是什么 电脑主机噪音大 更多