hadoop snapshot 备份恢复

通过snapshot实现 hdfs上文件的备份

api地址请见http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.5.0-cdh5.2.0/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html

==========================================================================================

1、允许创建快照

首先,在你想要进行备份的文件夹下面 执行命令,允许该文件夹创建快照

hdfs dfsadmin -allowSnapshot

例如:hdfs dfsadmin -allowSnapshot /Workspace/linlin

 

Center

出现此命令证明已经允许创建快照成功

=================================================================================================

2、创建快照

接下来就开始对此文件夹进行备份

hdfs dfs -createSnapshot [name]

例如 hdfs dfs -createSnapshot /Workspace/linlin bak1

Center 1

此命令出现证明已经创建快照成功

此时我们可以考虑一下是否能够在linlin子目录创建快照

hdfs’上目录结构如图所示

Center 2

然后尝试在snaptest上建立快照

hdfs dfs -createSnapshot /Workspace/linlin/snaptest bak2

Center 3

报错,可见,只能在你允许的目录下面建立快照;

第一次快照 bak1 时候 没有snaptest文件夹,现在多了snaptest文件夹,再创建一次快照

若还是用

hdfs dfs -createSnapshot /Workspace/linlin bak1

Center 4

有错误提示,快照名字已经存在

执行 hdfs dfs -createSnapshot /Workspace/linlin bak2

Center 5

创建成功;

==============================================================================================================

3、查看快照

查看所有的snapshottable

hdfs lsSnapshottableDir
查看到曾经允许创建快照的所有目录 查看当前快照下的文件 hadoop sanpshot 创建快照时候,默认的文件夹是.snapshot 查看时候必须加上.snapshot才能看到里面备份的东西; .snapshot是后来hadoop才有的产物,所以之前若是有文件夹命名为snapshot关键字就不能创建快照了;
执行命令 hdfs dfs -ls /Workspace/linlin/.snapshot/

Center 6

能够看到 这个快照下 有三个备份 分别是 bak1 、bak2 、 linlin

===========================================================================================================

4、对比快照

进行快照之间的对比,看到两个快照之间备份文件的区别

执行命令

hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>

例如: 执行命令 hdfs snapshotDiff /Workspace/linlin bak1 bak2
结果 Results:


+ The file/directory has been created. - The file/directory has been deleted. M The file/directory has been modified. R The file/directory has been renamed.
这里出现M 代表我对linlin文件夹进行了修改,+代表新增了一个文件夹 snaptest ============================================================================================================================ 5、恢复快照
恢复快照: hdfs dfs -cp <path> <path> 例如: hdfs dfs -cp /Workspace/linlin/.snapshot/bak2/snaptest /Workspace
查看hdfs目录:

已经成功恢复到 Workspace
================================================================================================================================== 题外话: 我们可以尝试着删除建立过快照的文件夹:是无法删除的,会提示
存在快照无法删,证明若是在文件夹下面建立快照,文件夹就无法删除或者移动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值