内容纲要
概要说明
HDFS 快照是文件系统的只读时间点副本。可以在文件系统的子目录或整个文件系统上创建快照。快照的一些常见适用场景是数据备份、用户误操作时的灾难恢复。
详细说明
- 快照目录:一旦目录被设置为快照目录 ,就可以在该目录下创建快照。
- 快照文件路径:对于可快照目录,可以通过访问路径 “.snapshot” 来访问其快照。
比如 TDH 集群中,将 / 设置为快照目录,该目录下创建的快照,都可以通过访问 /.snapshot/ 访问所有快照。
在创建 snapshot 之前,我们需要先创建快照目录,命令如下:
[root@tdh-01~/mysh]# hdfs dfsadmin -allowSnapshot /udf/
2021-10-08 11:53:23,492 INFO util.KerberosUtil: Using principal pattern: HTTP/_HOST
Allowing snaphot on /udf/ succeeded
然后创建一个快照, 命令格式如下:
hdfs dfs -createSnapshot <路径> [<快照名称>]
[root@tdh-01~/mysh]# hdfs dfs -createSnapshot /inceptor3/inceptor3-20211008
2021-10-08 13:51:47,280 INFO util.KerberosUtil: Using principal pattern: HTTP/_HOST
Created snapshot /inceptor3/.snapshot/inceptor3-20211008
查看快照文件,命令格式如下:
hdfs dfs -ls /udf/.snapshot/udf-20211008
[root@tdh-01~/mysh]# hdfs dfs -ls /udf/.snapshot/udf-20211008/
2021-10-08 14:00:24,728 INFO util.KerberosUtil: Using principal pattern: HTTP/_HOST
Found 2 items
-rw-r--r-- 3 admin hbase 7634 2020-09-01 10:40 /udf/.snapshot/udf-20211008/AESudf.jar
-rw-r--r-- 3 admin hbase 18802901 2020-09-02 10:05 /udf/.snapshot/udf-20211008/AESudf2.jar
利用快照恢复内容,命令格式如下:
hdfs dfs -cp -ptopax [快照文件] [恢复路径]
[root@tdh-01~/mysh]# hdfs dfs -cp -ptopax /udf/.snapshot/udf-20211008/AESudf.jar /udf/
2021-10-08 14:44:12,396 INFO util.KerberosUtil: Using principal pattern: HTTP/_HOST
删除快照,从可快照目录中删除 的快照。此操作需要快照目录的所有者权限。命令格式如下:
hdfs dfs -deleteSnapshot <路径> <快照名称>
重命名快照,命令格式如下:
hdfs dfs -renameSnapshot <路径> <旧名称> <新名称>
获取可快照目录列表,命令格式如下:
hdfs lsSnapshottableDir
获取快照差异报告,命令格式如下:
hdfs snapshotDiff [path] [fromSnapshot] [toSnapshot]