一、什么是快照
HDFS快照是文件系统的只读时间点副本。可以在文件系统的子树或整个文件系统上拍摄快照。快照的一些常见用例是数据备份,防止用户错误和灾难恢复。
二、使用快照的优势
官网解释:
- 快照创建是即时的:成本是O(1),不包括inode查找时间。
- 仅当相对于快照进行修改时才使用附加内存:内存使用量为O(M),其中M是已修改文件/目录的数量。
- 不复制datanode中的块:快照文件记录块列表和文件大小。没有数据复制。
- 快照不会对常规HDFS操作产生负面影响:以反向时间顺序记录修改,以便可以直接访问当前数据。通过从当前数据中减去修改来计算快照数据。
三、快照目录
我们可以在任何被设置为snapshottable的目录上执行快照,对一个目录最多可以创建65536个快照。管理员可以把任何目录设置为snapshottable,没有限制。如果一个目录下已经存在快照,那么只有当先删除所有快照后才能对这个目录进行删除和重命名等操作。
不允许嵌套的snapshottable目录。也就是说,如果一个目录被设置为snapshottable,那么它的父目录和子目录都不允许被设置为snapshottable。
四、快照的启动和禁用
快照可以实现对文件或者目录的快速备份,不会产生新的文件,使用差值存储,默认情况是禁用的。所以如果我们想使用快照功能,首先需要启用该功能。我们可以使用“hdfs dfsadmin”对快照进行启用和禁用操作。
1)启动快照
[czz@hadoop102 czz]$ hdf