三种恢复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
819云是我们的老熟人了,服务器一直都是稳定为主,老板人也很好,这次给大家带来了新活动,十分给力 香港CN2 日本CN2 物理机 E5 16G 1T 20M 3IP 240元0官方网站:https://www.819yun.com/ 特惠专员Q:442379204套餐介绍套餐CPU内存硬盘带宽IP价格香港CN2 (特价)E5 随机分配16G1T 机械20M3IP240元/月日本CN2 (...
关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...
享有云怎么样?享有云是一家新的国内云服务器商家,目前提供国内、香港及海外地区的云服务器,拥有多线路如:BGP线路、CN2线路、高防等云服务器,并且提供稳定、安全、弹性、高性能的云端计算服务,实时满足您的多样性业务需求。目前,美国bgp云服务器,5M带宽,低至20元/月起,270元/年起,首月打折;香港2核2G2M仅50元/月起,450元/年起!点击进入:享有云官方网站地址享有云优惠活动:一、美国B...
文件夹删不掉怎么办为你推荐
邮箱怎么写正确的邮箱地址怎么写深圳公交车路线深圳公交车路线万网核心代理我想买个域名和空间,我一朋友给我介绍万网代理环宇网络空间商,他们的空间稳定吗,价格怎么样,咨询师的服伪静态怎么做伪静态?手机区号有的手机号中间的号码是地区区号,那是什么卡显卡温度多少正常显卡温度多少算正常?办公协同软件最好用的协同办公软件是哪个网店推广网站开网店如何做推广?硬盘人克隆一个人需要多少人多长时间啊bt封杀BT下载被封锁了,怎么办,下载不了电影了!
域名抢注 seovip qq数据库下载 权嘉云 1g内存 空间技术网 1美金 vip域名 四川电信商城 带宽租赁 网站加速软件 114dns 金主 空间申请 攻击服务器 江苏双线 789电视剧网 privatetracker 聚惠网 香港博客 更多