1.介绍
HDFS快照保存某个时间点的文件系统快照,可以是部分的文件系统,也可以是全部的文件系统。快照用来做数据备份和灾备.有以下特点:
1.快照几乎是实时瞬间完成的
2.只有在做快照时文件系统有修改才需要额外的内存
3.datanode上的块不需要复制。快照文件记住块的列表和文件的大小
4.对HDFS没有不利的影响。在文件系统有更改时做快照,不影响数据的写入读出,快照会根据当前块的数据减去变化的数据来得到先前时间点的数据。
2.快照文件夹
允许做快照的文件夹称为snapshottable目录,HDFS中的任意目录都可以设置成snapshottable,一个snapshottable目录下可以存放65536个快照。在/foo/bar中,需要对foo做快照,路径如下:
/foo/.snapshot/s0/bar 即在当前目录下有有.snapshot目录。
3.HDFS升级时……略
4.快照的操作
1)允许目录创建快照
hdfs dfsadmin -allowSnapshot <path>
2)禁用快照.所有该文件夹的快照必须都要删除掉
hdfs dfsadmin -disallowSnapshot <path>
3)创建快照
hdfs dfs -createSnapshot <path> [<snapshotName>] path指要创建的快照,创建完后就是path目录下有个.snapshot目录
4)重命名快照
hdfs dfs -renameSnapshot <path> <oldName> <newName>
5)列出当前用户可以创建的快照的目录
hdfs lsSnapshottableDir
6)找出两个快照之间的不同
hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
Arguments:path The path of the snapshottable directory.
fromSnapshot The name of the starting snapshot.
toSnapshot The name of the ending snapshot.
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.
参考:
http://debugo.com/hdfs-snapshot/
http://www.nosqlcn.com/ShowArticle/23