`
QING____
  • 浏览: 2232583 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HDFS Snapshot[官网整理]

 
阅读更多

【HDFS Snapshot(2.2+)】

HDFS Snapshot是文件系统在某一时间点的只读的备份,Snapshot可以针对文件系统的子树或者整个文件系统。Snapshot的通常用法是做数据backup,以避免用户错误和灾难恢复。

   

    HDFS Snapshot实现是高效的:

    1、Snapshot的创建是瞬间完成:除了节点遍历耗时之外,其创建的开销为O(1)。

    2、Snapshot后数据发生更改时,将会消耗额外的内存(记录修改操作),内存使用量为O(M),其中M为更改的文件或者目录的个数。

    3、Datanodes上的Blocks并不会发生Copy:snapshot文件记录了有关的block列表和文件大小,没有实际数据的Copy。(并不是计算机科学中的Full snapshot)

    4、Snapshot不会影响正常的HDFS操作:修改操作按照时间倒叙的方式记录,因此当前数据可以直接访问。snapshot数据由当前数据减去已经修改的部分。snapshot Data = current data - modification。访问数据时会经过snapshot判定(可以认为snapshot在内存中维护了一份目录子树,Namenodes),对于修改记录中没有涉及到的文件或者目录将可以直接访问,否则从snapshot子树中获取。

 

一、Snapshottable 目录

    Snapshot可以在任何snapshottable目录上进行。一个snapshottable目录可以容忍65536个snapshots。文件系统对snapshottable目录个数没有上限。管理员可以将任何目录设置为snapshottable。 如果一个snapshottable目录下存在snapshots(数据),这个目录将不能被删除或者重命名,直到所有的snapshots被删除。

 

    目前不允许snapshottable目录的嵌套,即如果一个目录的父目录或者子目录是snapshottable,那么不能将它设置为snapshottable。

 

二、 Snapshot 路径

     对于一个snapshottable目录,路径部分“.snapshot”用来访问其snapshots。例如“/foo”是一个snapshottable目录,“/foo/bar”是此目录下的一个文件或者目录,且“/foo”已经有一个名为s0的snapshot,那么路径“/foo/.snapshot/bar”即是“/foo/bar”的snapshot复本。如下为可参考例子:

    1、列出“/foor”目录下所有的snapshots:

    “hdfs dfs -ls /foo/.snapshot”

    2、列出名为s0的snapshot中的文件:

    “hdfs dfs -ls /foo/.snapshot/s0”

    3、从s0中复制文件

    “hdfs dfs -cp /foo/.snapshot/s0/bar /tmp”

 

    注意,在HDFS中“.snapshot”作为一个保留字,用户将不能创建“.snapshot”名称的目录或者文件。

 

三、snapshot操作

    1、开启snapshot:将一个目录设置为snapshottable

    “hdfs dfsadmin -allowSnapshot <path>”

 

    2、关闭snapshots:此目录下的所有snapshots需要首先删除,才能执行disabllow指令。

    “hdfs dfsadmin -disallowSnapshot <path>”

 

    3、创建snapshot:对一个snapshottable目录创建snapshot。

    “hdfs dfs -createSnapshot <path> [snapshotName]”

    创建snapshot时可以指定名称,这是可选参数;如果没有指定snapshotName,系统将会根据timestamp按照格式“'s' yyyyMMdd-HHmmss.SSS”,例如“s20130412-151029.003”。我们也可以使用HDFS Client API来创建snapshot:FileSystem#createSnapshot(path,snapshotName)。

 

    4、删除snapshots:从一个snapshottable目录下删除snapshots。

     “hdfs dfs -deleteSnapshot <path> <snapshotName>”

    我们可以首先使用“hdfs dfs -ls <path>/.snapshot”来查看目录下所有snapshots的列表,然后删除。

 

    5、重命名snapshots:修改snapshot的名称

    “hdfs dfs -renameSnapshot <path> <oldName> <newName>”

 

    6、列举所有的snapshottable目录

    “hdfs lsSnapshottableDir”

    7、获取snapshots差别报告:获取两个snapshots的不同。

    “hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>”

 

     上述所有snapshot操作,均可以通过FileSystem API操作。snapshots并不会创建实际数据的Copy,不过这些snapshots以及snapshot之后的变更操作将会添加到Namenode的metadata中,对于datanodes并不知道snapshots的任何细节,事实上snapshots操作也不会和Datanodes交互,即一个文件、目录是否有snapshots,Datanodes并不需要知道,创建snapshot也不需要Datanodes做任何额外的操作(包括Block迁移),不过文件的修改操作均会有Namenode判定,当一个目录有snapshot时不允许删除。



 

  • 大小: 35.5 KB
分享到:
评论

相关推荐

    13、HDFS Snapshot快照

    13、HDFS Snapshot快照 网址:https://blog.csdn.net/chenwewi520feng/article/details/130362505 快照(Snapshot)是数据存储的某一时刻的状态记录;与备份不同,备份(Backup)则是数据存储的某一个时刻的副本。 ...

    hdfs源码分析整理

    hdfs源码分析整理,分布式文件系统详细讲解。

    ranger-2.0.0-SNAPSHOT-hdfs-plugin.tar.gz

    ranger-2.0.0-SNAPSHOT-hdfs-plugin.tar.gz 配合ranger-admin使用

    拓思爱诺大数据-第一次作业HDFSshell命令整理

    四川大学IT企业实训,拓思爱诺大数据作业1,HDFS shell命令整理

    HDFS Comics HDFS 漫画

    HDFS是Hadoop分布式计算的存储基础。HDFS具有高容错性,可以部署在通用硬件设备上,适合数据密集型应用,并且提供对数据读写的高吞 吐量。HDFS能 够提供对数据的可扩展访问,通过简单地往集群里添加节点就可以解决...

    HDFS管理工具HDFS Explorer下载地址、使用方法.docx

    现在官网已经停止更新这款软件。具体配置如下: HDFS配置页面及端口http://master:50070 配置HDFS服务器 配置WebHDFS HDFS Explorer通过WebHDFS访问HDFS,必须配置HDFS支持webhdfs。在hdfs-site.xmle文件中添加...

    HDFS资料整理

    HDFS资料整理

    深入理解Hadoop HDFS高级教程.txt打包整理.zip

    深入理解Hadoop HDFS高级教程.txt打包整理.zip

    HDFS资料整理.pdf

    对hadoop HDFS的分析,描述,HDFS文件的访问,读写等。HDFS读文件解析,HDFS写文件解析,HDFS文件创建流程,HDFS文件数据流写入传输协议

    HDFS文件的查看

    hdfs文件的查看 hdfs fs -cat /文件名

    hdfs官方设计文档(中文)

    Hadoop 分布式文件系统 (HDFS)是一个设计为用在普通硬件设备上的分布式文件系统。它与现有的分布式文件系统有很多近似的地方,但又和这些文件系统有很明显的不同。HDFS是高容错的,设计为部署在廉价硬件上的。HDFS对...

    hdfs源码.zip

    第1章 HDFS 1 1.1 HDFS概述 1 1.1.1 HDFS体系结构 1 1.1.2 HDFS基本概念 2 1.2 HDFS通信协议 4 1.2.1 Hadoop RPC接口 4 1.2.2 流式接口 20 1.3 HDFS主要流程 22 1.3.1 HDFS客户端读流程 22 1.3.2 ...

    HDFS实例基本操作

    在安装好HDFS的前提下,此项目包含HDFS的基本操作,上传,下载,创建文件夹等。

    实验二:熟悉常用的HDFS操作

    A.2实验二:熟悉常用的HDFS操作 本实验对应第4章的内容。 A.2.1 实验目的 (1)理解 HDFS在Hadoop体系结构中的角色。(2)熟练使用HDFS操作常用的 Shell命令。(3)熟悉HDFS操作常用的Java API。 A.2.2 实验平台 (1)操作...

    MR处理HDFS日志样例

    MR处理HDFS日志样例

    hadoop-hdfs-2.7.3-API文档-中英对照版.zip

    赠送jar包:hadoop-hdfs-2.7.3.jar; 赠送原API文档:hadoop-hdfs-2.7.3-javadoc.jar; 赠送源代码:hadoop-hdfs-2.7.3-sources.jar; 赠送Maven依赖信息文件:hadoop-hdfs-2.7.3.pom; 包含翻译后的API文档:hadoop...

    HDFS体系架构汉化文档.pdf

    Hadoop分布式文件系统( HDFS )是一种旨在在商品硬件上运行的分布式文系统。它与现有的分布式文件系统许多相似之处。 但是,与其他分布式文件系统的区别很明显。 HDFS 具有高度的容错能力,旨在部署低成本硬件上。 ...

    HDFS配置文件hdfs-site

    HDFS测试环境配置文件,稳定运行无异常,分享给大家学习参考用;

    HDFS文件操作命令与HDFS编程

    文档详细的讲述了Hadoop中HDFS文件操作命令和HDFS编程

    HDFS文件的上传

    hdfs 文件的上传,hdfs fs -put /文件名

Global site tag (gtag.js) - Google Analytics