HDFS文件系统数据备份

HDFS快照是一个只读的基于时间点文件系统拷贝。快照可以是整个文件系统的 也可以是一部分。常用来作为数据备份,防止用户错误和容灾快照功能。

HDFS实现功能:

  • Snapshot 创建的时间 复杂度为O(1),但是不包括INode 的寻找时间
  • 只有当修改SnapShot时,才会有额外的内存占用,内存使用量为O(M),M 为修改的文件 或者目录数
  • 在DataNode上面的blocks 不会复制,做Snapshot 的文件是纪录了block的列表和文件的 大小,但是没有数据的复制
  • Snapshot 并不会影响HDFS 的正常操作:修改会按照时间的反序记录,这样可以直接读 取到最新的数据。快照数据是当前数据减去修改的部分计算出来的。

快照命令

  • 设置一个目录为可快照
    $ bin/hdfs dfsadmin -allowSnapshot <path>
  • 取消目录可快照
    $ bin/hdfs dfsadmin -disallowSnapshot <path>
  • 生成快照
    $ bin/hdfs dfs -createSnapshot <path> [<snapshotName>]
  • 删除快照
    $ bin/hdfs dfs -deleteSnapshot <path> <snapshotName>
  • 列出所有可快照目录
    $ bin/hdfs lsSnapshottableDir
  • 比较快照之间的差异
    $ bin/hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>

具体例子看光官网

上一篇:云计算发展与政策论坛即将在京召开


下一篇:git统计某一个开发者提交代码的次数