HDFS_快照

来源:互联网 发布:帕罗奥图的重要数据 编辑:程序博客网 时间:2024/06/05 14:47
  1. 快照的含义

    快照不是数据的简单拷贝,快照只做差异的记录。HDFS中只为每个快照保存相对当时快照创建时间点发生过变更的INode信息,只是“存不同”。

  2. 快照的作用

    ① 丢失数据的恢复。这里丢失的数据指的是相对于创建快照时间点之后丢失的数据。在HDFS的快照中,只会额外复制发生变更的数据,所以在快照内部,自然会存在丢失数据的一个备份,这个时候只需要将对应快照文件目录拷贝一份即可。

    ② 元数据的差异比较。HDFS的快照能够提供diff比较的功能。比较的结果会展示相对于源端快照,目标快照中发生的文件目录的变更记录。这个差异结果可以用于数据的同步,比如快照在DistCp命令中的使用。用DistCp中的-diff参数附加两个from、to快照,进行元数据变更的同步,然后利用DistCp的功能,进行真实数据的拷贝,以此实现集群数据间的同步。获取快照信息时,根据快照ID和当前没发生过变更的INode信息,进行对应恢复。
    快照“比差异”的命令如下:

    hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
  3. 快照的命令

    列出所有允许快照的目录

    hdfs lsSnapshottableDir

    允许为某个目录创建快照

    hdfs dfsadmin -allowSnapshot /hbase

    禁止为某个目录创建快照

    hdfs dfsadmin -disallowSnapshot /hbase

    为某个目录创建快照

    hdfs dfs -createSnapshot /hbase snapshot_0816

    删除某个快照

    hdfs dfs -deleteSnapshot /hbase snapshot_0816

    对比两个快照

    hdfs snapshotDiff <Path> <fromSnapshot> <toSnapshot>

    hadoop fs [generic options]
    以下为具体的[generic options]:
    [-createSnapshot []] //在指定快照目录下创建快照
    [-deleteSnapshot []] //在指定快照目录下删除快照
    [-renameSnapshot ] //在指定快照目录下重命名快照
    hdfs [-config confdir] [-loglevel loglevel] [COMMAND] //以下为具体的COMMAND
    snapshotDiff //比较两个快照之间的不同或是比较当前内容与某快照之间的不同
    IsSnapshottableDir //列出所属当前用户的所有的快照目录