HDFS恢复误删操作的方法
1、通过垃圾箱恢复
使用这种方式的前提是在hdfs上面开启trash功能,默认是没有开启的。interval的值默认为0,单位是分钟。只需要在hadoop的配置文件core-site.xml中添加下面的内容:
<!--Enable Trash -->
<property>
<name>fs.trash.interval</name>
<value>120</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
</property>
添加好上述内容后,不需要重启后台程序,直接就会生效。
执行删除操作后,会先将文件移动到当前操作用户的.Trash/Current目录下面。例如:
[root@spark hadoop]# hdfs dfs -rm -r /widow
18/01/15 15:54:49 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 120 minutes, Emptier interval = 120 minutes.
Moved: 'hdfs://spark:9000/widow' to trash at: hdfs://spark:9000/user/root/.Trash/Current
我这里是以root用户进行操作的,所以HDFS上面上的路径/user/root/.Trash/Current
恢复:
#hdfs dfs -mv /user/root/.Trash/Current/widow /
如果确定要删除的文件,直接将文件或目录drop掉,不放到trash里面,删除的时候使用参数-skipTrash:
#hdfs dfs -rm -r -skipTrash /widow
2、通过快照恢复
hadoop从2.1版本后开始支持HDFS快照(SnapShot)功能,
- 快照创建瞬时性:除去inode的查询时间,算法消耗O(1)复杂度。
- 只有在对快照修改时才会消耗额外内存:内存使用O(M),M是被修改的文件或者目录数。
- DataNode的block不被复制:快照文件记录block列表和文件大小。不做数据的拷贝复制。
- 快照不会对正常HDFS操作产生不利影响:所有的修改都按照时间倒序排序,因此当前数据总能被直接访问到。快照数据是根据与当前数据进行变更部分的差值计算得来的。
创建快照前要先对目录进行检查是否可以创建快照:
#hdfs lsSnapshottableDir
一个可以快照的目录最多可以允许同时65536个快照同时存在,嵌套的可快照目录目前还不允许
管理员操作:
1)允许快照:
#hdfs dfsadmin -allowSnapshot <path>
path即想创建快照的目录的路径。通过上述命令将一个目录变成可快照的目录。
2)创建快照
一般使用普通用户操作,此用户需要有操作可快照目录的权限,最好是该目录的owner。管理员可以进行任何操作。
#hdfs dfs -createSnapshot <path> [<snapshotName>]
<path>可快照目录的路径,<snapshotName>快照的名称,可以不写,默认会生成一个格式为's'yyyyMMdd-HHmmss.SSS
3)删除快照
# hdfs dfs -deleteSnapshot <path> <snapshotName>
<path>可快照目录的路径 ,<snapshotName>快照的名称
4)重命名快照
# hdfs dfs -renameSnapshot <path> <oldname> <newname>
<path>可快照目录的路径,<oldname>老名字, <newname>新名字
5)获取可快照目录的信息
# hdfs lsSnapshottableDir
6)获取快照的差异报告
#hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
<path>可快照目录的路径,<fromSnapshot>源快照名,<toSnapshot>目的快照名
结果:
+ | 文件或目录被创建。 |
- | 文件或目录被删除。 |
M | 文件或目录被修改。 |
R | 文件或目录被重命名。 |
已经创建快照的目录无法被删除,只有删除该目录下的所有快照,才允许删除这个目录。
使用方式:
1)创建快照:
#hdfs dfsadmin -allowSnapshot /widow
#hdfs dfs -put test.txt /widow
#hdfs dfs -createSnapshot /widow import-data
将test文件删除:
#hdfs dfs -rm -r /widow/test.txt
误删除后就可以使用快照目录进行恢复:
#hdfs dfs -cp -ptopax /widow/.snapshot/import-data/test.txt /widow
HDFS恢复误删操作的方法的更多相关文章
- 读Hadoop3.2源码,深入了解java调用HDFS的常用操作和HDFS原理
本文将通过一个演示工程来快速上手java调用HDFS的常见操作.接下来以创建文件为例,通过阅读HDFS的源码,一步步展开HDFS相关原理.理论知识的说明. 说明:本文档基于最新版本Hadoop3.2. ...
- 如何有效恢复误删的HDFS文件
HDFS是大数据领域比较知名的分布式存储系统,作为大数据相关从业人员,每天处理HDFS上的文件数据是常规操作.这就容易带来一个问题,实际操作中对重要数据文件的误删,那么如何恢复这些文件,就显得尤为重要 ...
- crontab误删操作的恢复与防范
1.crontab -r 误删操作的恢复 语句解析:crontab -e 编辑 与 crontab -r 删除,由于e, r在键盘上是紧邻的,一旦误操作 crontab -r 将会删除每个用户的定时任 ...
- Hadoop中操作HDFS出现异常的解决方法
Hadoop环境搭建成功后,一般会运行一个小例子,这时候就涉及到了对HDFS文件系统的操作,对于刚开始学习Hadoop的初学者一般会多次的进行name节点的格式化操作,最后导致上传文件会抛出异常,通过 ...
- PostgreSQL恢复误删数据
在Oracle中:删除表或者误删表记录:有个闪回特性,不需要停机操作,可以完美找回记录.当然也有一些其他的恢复工具:例如odu工具,gdul工具.都可以找回数据.而PostgreSQL目前没有闪回特性 ...
- git stash 的一次惊心动魄的误删操作
git stash 的一次惊心动魄的误删操作 简介:行走在互联网最低端的小熊 问题--源起: 小熊和所有混迹在互联网中的开发一样,公司里面用git来管理项目,由于可能经常有几个问题要开发,要频繁在多分 ...
- 利用JAVA API远程进行HDFS的相关操作
学习HDFS有一段时间了,现在把自己总结的HDFS的相关操作代码展示给大家. 主要有HDFS的增删改查,文件的追加,windows本地文件的上传,hdfs文件的下载,文件重命名,创建目录,文件是否存在 ...
- Mysql利用binlog日志恢复数据操作(转)
a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...
- 三、hdfs的JavaAPI操作
下文展示Java的API如何操作hdfs,在这之前你需要先安装配置好hdfs https://www.cnblogs.com/lay2017/p/9919905.html 依赖 你需要引入依赖如下 & ...
随机推荐
- Objective-C 对象和消息模型
Objective-C 对象模型 首先要了解一下Objective-C中关于类和对象的定义,Cocoa中大部分对象都是NSObject的子类(NSProxy是一个例外),继承了NSObject的方法. ...
- 1、K-means
k-means(K均值) 1.无监督聚类算法 2.K---分成K类 3.分类准则:使得样本与各类中心之间的误差平方和最小 --------------------------------------- ...
- bash编程-Shell基础
1. Shell脚本执行方式 直接运行,需要在脚本文件头部指定解释器,如#!/bin/bash ./myshell.sh 运行时指定shell解释器 bash myshell.sh 2. Shell命 ...
- 关于synchronized和lock 的使用及其在线程间的通信
题目要求:子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次 synchronized的使用 import java.util.conc ...
- 工作随笔——pinpoint分布式性能监控工具(docker安装)
在做性能压测的时候,你是不是有只能看到测试报告? 在做性能压测的时候,你是不是想知道每一个方法执行了多长时间? Pinpoint几乎可以帮助你查看你想看到的每一个细节. Pinpoint是什么? Pi ...
- powerviot open error in sharepoint 2013
Testing Service c2WTS +- Service c2WTS found +- Service c2WTS is running +- Path of service: C:\Prog ...
- prometheus比zabbix好在哪点?
分享网易云轻舟微服务选择基于 Prometheus 开发微服务监控系统的考量: 开源 云原生 与微服务监控需求的匹配度很高 开源 Prometheus是CNCF(云原生计算基金会)旗下成熟的开源项目, ...
- JVM活学活用——Jvm内存结构
Java内存结构: JVM内存结构主要是有三大块:堆内存.方法区和栈.堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分为三部分,Eden空间.From Survivor空间.To S ...
- Linux下安装MySQL以及一些小坑
第一次写博客,各位凑合着看吧(假装有人看). 我这里使用的是centos7. 1.首先打开终端,查看有没有安装过MySQL: [root@localhost lyp]# rpm -qa | grep ...
- Python3.5学习十八 Python之Web框架 Django
Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式 ...