概况
HDFS快照是文件系统的只读时间点副本。可以在文件系统的子树或整个文件系统上拍摄快照。快照的一些常见用例是数据备份,防止用户错误和灾难恢复。
特点
快照创建是即时的:成本是O(1),不包括inode查找时间。
仅当相对于快照进行修改时才使用附加内存:内存使用量为O(M),其中M是已修改文件/目录的数量。
不复制datanode中的块:快照文件记录块列表和文件大小。没有数据复制。
快照不会对常规HDFS操作产生负面影响:以反向时间顺序记录修改,以便可以直接访问当前数据。通过从当前数据中减去修改来计算快照数据。
应用
Snapshottable目录
一旦将目录设置为snapshottable,就可以在任何目录上拍摄 快照。快照目录可以容纳65,536个同步快照。快照目录的数量没有限制。管理员可以将任何目录设置为快照。如果快照目录中有快照,则在删除所有快照之前,既不能删除也不能重命名目录。
目前不允许嵌套的快照目录。换句话说,如果其祖先/后代之一是快照目录,则无法将目录设置为snapshottable。
快照操作
-
允许快照
允许创建目录的快照。如果操作成功完成,则该目录将变为快照。
命令:hdfs dfsadmin -allowSnapshot < path>
禁止快照
不允许创建目录的快照。在禁止快照之前,必须删除目录的所有快照。
命令:hdfs dfsadmin -disallowSnapshot < path>