Hadoop学习笔记(十)——HDFS Snapshot快照功能

Hadoop——HDFS Snapshot快照功能

  • 一、概述
  • 二、具体操作

一、概述

快照snapshots是HDFS文件系统的只读的基于某时间点的拷贝,可以针对某个目录,或者整个文件系统做快照。快照比较常见的应用场景是数据备份,以防一些用户错误或灾难恢复。

快照的高效性实现:
(1) 快照可以即时创建。
(2) 只有当涉及到快照目录的修改被执行时,才会产生额外的内存消耗。
(3) 创建快照时,block块并不会被拷贝。快照文件中只记录了block列表和文件大小,不会做任何数据拷贝。
(4)快照不会对常规HDFS操作产生负面影响:以反向时间顺序记录修改,以便可以直接访问当前数据。通过从当前数据中减去修改来计算快照数据。

我们可以在任何被设置为snapshottable的目录上执行快照,对一个目录最多可以创建65536个快照。管理员可以把任何目录设置为snapshottable,没有限制。如果一个目录下已经存在快照,那么只有当先删除所有快照后才能对这个目录进行删除和重命名等操作。

不允许嵌套的snapshottable目录。也就是说,如果一个目录被设置为snapshottable,那么它的父目录和子目录都不允许被设置为snapshottable。

二、具体操作

1、开启与禁用指定目录的快照

[root@node-1 ~]# hdfs dfsadmin -allowSnapshot /test
Allowing snaphot on /test succeeded

[root@node-1 ~]# hdfs dfsadmin -disallowSnapshot /test
Disallowing snaphot on /test succeeded
[root@node-1 ~]#

2、对指定目录创建快照
注意:创建快照之前,先要允许该目录创建快照
[root@node-1 ~]# hdfs dfsadmin -allowSnapshot /test
Allowing snaphot on /test succeeded

[root@node-1 ~]# hdfs dfs -createSnapshot /test
Created snapshot /test/.snapshot/s20190925-211227.517

通过web浏览器访问快照
http://node-1:50070/explorer.html#/test/.snapshot/s20190925-211227.517

3、指定名称创建快照
[root@node-1 ~]# hdfs dfs -createSnapshot /test mysnap1
Created snapshot /test/.snapshot/mysnap1

4、重命名快照
[root@node-1 ~]# hdfs dfs -renameSnapshot /test mysnap1 mysnap2

5、列出当前用户所有可以快照的目录
[root@node-1 ~]# hdfs lsSnapshottableDir
drwxr-xr-x 0 root supergroup 0 2019-09-25 21:15 2 65536 /test

6、比较两个快照不同之处
hdfs dfs -createSnapshot /test snap1
hdfs dfs -createSnapshot /test snap2
hdfs snapshotDiff /test snap1 snap2

7、删除快照
hdfs dfs -deleteSnapshot /test snap1

你可能感兴趣的:(Hadoop,Hadoop,学习笔记)