三种恢复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
新网好不好?新网域名便宜吗?新网怎么样?新网是国内老牌知名域名注册商,企业正规化运营,资质齐全,与阿里云万网和腾讯云DNSPOD同为国内服务商巨头。近日新网发布了最新的七月放价季优惠活动,主要针对域名、云主机、企业邮箱、SSL证书等多款云产品推送了超值的优惠,其中.com顶级域名仅19.9元/首年,.cn域名仅16元/首年,云主机1核心2G内存3Mbps带宽仅9.9元/月,企业邮箱更是免费送1年,...
racknerd怎么样?racknerd今天发布了几款美国特价独立服务器的促销,本次商家主推高配置的服务器,各个配置给的都比较高,有Intel和AMD两种,硬盘也有NVMe和SSD等多咱组合可以选择,机房目前有夏洛特、洛杉矶、犹他州可以选择,性价比很高,有需要独服的朋友可以看看。点击进入:racknerd官方网站RackNerd暑假独服促销:CPU:双E5-2680v3 (24核心,48线程)内存...
优惠码50SSDOFF 首月5折50WHTSSD 年付5折15OFF 85折优惠,可循环使用荷兰VPSCPU内存SSD带宽IPv4价格购买1核1G50G1Gbps/3TB1个$ 9.10/月链接2核2G80G1Gbps/5TB1个$ 12.70/月链接2核3G100G1Gbps/7TB1个$ 16.30/月链接3核4G150G1Gbps/10TB1个$ 18.10/月链接阿联酋VPSCPU内存SS...
文件夹删不掉怎么办为你推荐
雅特士威客’网怎么赚钱回收站在哪回收站在系统的哪文件夹可以发外链的论坛发外链的论坛哪个比较好,哪个论坛能发外链,能发广告急求。。。。cornerradiusUG后处理可以输出自定义刀具描述吗?spgnuxPC操作系统如何描述伪静态静态与伪静态的区别?今日热点怎么删除youku今日热点怎么卸载安卓应用平台现在android平台的手机都有哪些?办公协同软件oa办公系统软件有哪些苹果5怎么越狱苹果5怎么越狱
网站空间租用 美国vps 美国vps评测 godaddy域名解析 edgecast bluevm 外国空间 新站长网 丹弗 免费网站申请 新世界服务器 最漂亮的qq空间 空间租赁 台湾google 实惠 godaddy空间 沈阳idc shuangcheng forwarder 免费的加速器 更多