Hadoop HDFS Snapshots 快照

HDFS 快照(HDFS Snapshots)是文件系统在某个时间点的只读副本。可以在文件系统的子树或整个文件系统上创建快照。快照的常见用途主要包括数据备份,防止用户误操作和容灾恢复。

HDFS 快照的实现非常高效:

  1. 快照的创建非常迅速:除去 inode 的查找时间,时间复杂度为 O(1);
  2. 仅在对快照进行修改时,才会消耗一些内存:内存使用 O(M),M 是被修改的文件或目录数;
  3. Datanode 上的 block 是不会被复制的:快照文件记录 block 的列表和文件大小,并不做数据的拷贝;
  4. 快照不会对常规的 HDFS 操作产生负面影响:所有的修改都按照时间倒序排序,以便可以直接访问当前数据。快照数据是从当前数据中减去修改的数据来计算的。

基本语法

功能描述
hdfs dfsadmin -allowSnapshot 路径开启指定目录的快照功能
hdfs dfsadmin -disallowSnapshot 路径禁用指定目录的快照功能,默 认是禁用
hdfs dfs -createSnapshot 路径对目录创建快照
hdfs dfs -createSnapshot 路径 名称指定名称创建快照
hdfs dfs -renameSnapshot 路径 旧名称 新名称重命名快照
hdfs lsSnapshottableDir列出当前用户所有可快照目录
hdfs snapshotDiff 路径 1 路径 2比较两个快照目录的不同之处
hdfs dfs -deleteSnapshot 删除快照

开启指定目录的快照功能

[root@hadoop101 hadoop-2.7.2]# hdfs dfsadmin -allowSnapshot /ylj/demo
Allowing snaphot on /ylj/demo succeeded

创建快照

[root@hadoop101 hadoop-2.7.2]# hdfs dfs -createSnapshot /ylj/demo
Created snapshot /ylj/demo/.snapshot/s20190401-030142.009

从web ui上看不到文件夹.snapshot

可以直接访问

差异比较

[root@hadoop101 hadoop-2.7.2]# hdfs snapshotDiff /ylj/demo . .snapshot/s20190401-030142.009        
Difference between current directory and snapshot s20190401-030142.009 under directory /ylj/demo:

[root@hadoop101 hadoop-2.7.2]# hdfs dfs -put /root/tmp/1.jpg /ylj/demo/4.jpg
[root@hadoop101 hadoop-2.7.2]# hdfs snapshotDiff /ylj/demo . .snapshot/s20190401-030142.009
Difference between current directory and snapshot s20190401-030142.009 under directory /ylj/demo:
M       .
-       ./4.jpg

恢复快照

hdfs dfs -cp /ylj/demo/.snapshot/s20190401-030142.009/* /ylj/demo/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值