说明:由于近期正好在研究hadoop的快照机制。看官网上的文档讲的非常仔细。就顺手翻译了。也没有去深究一些名词的标准译法,所以可能有些翻译和使用方法不是非常正确,莫要介意~~

原文地址:(Apache hadoop的官方文档) https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html

1. 概述

快照snapshots是HDFS文件系统的仅仅读的基于某时间点的拷贝,能够针对某个文件夹,或者整个文件系统做快照。

快照比較常见的应用场景是数据备份,以防一些用户错误或灾难恢复。

快照的高效性实现:

(1) 快照能够即时创建。耗时仅为O(1)。

--excluding the inode lookup time

(2) 仅仅有当涉及到快照文件夹的改动被运行时。才会产生额外的内存消耗。

并且内存消耗为O(M)。当中M是被改动的文件或文件夹数。

(3) 创建快照时,block块并不会被拷贝。

快照文件里仅仅记录了block列表和文件大小,不会做不论什么数据拷贝。

(4) 快照不会对正常的HDFS操作有不论什么影响:创建快照以后发生的改动操作,被按操作时间的倒序(from newer to older)记录下来。

所以当前的数据能被直接获取,而快照点的数据。则通过在当前的数据基础上减去运行过的操作来获取。

-- 所以我理解时间越久的快照。要获取就须要越长的时间。

1.1 快照文件夹

我们能够在不论什么被设置为snapshottable的文件夹上运行快照,对一个文件夹最多能够创建65536个快照。管理员能够把不论什么文件夹设置为snapshottable,没有限制。

假设一个文件夹下已经存在快照,那么仅仅有当先删除全部快照后才干对这个文件夹进行删除和重命名等操作。

不同意嵌套的snapshottable文件夹。也就是说,假设一个文件夹被设置为snapshottable,那么它的父文件夹和子文件夹都不同意被设置为snapshottable。

1.2 快照路径

快照被存放在一个被命名为.snapshot的文件夹中。

比方/foo是一个snapshottable文件夹,/foo中有一个文件夹为/foo/bar,对/foo创建一个快照s0。那么

/foo/.snapshot/s0/bar

就是/foo/bar文件夹相应的快照。能够通过".snapshot"路径直接訪问和操作快照数据。比如:

  • 列出一个文件夹的全部快照:
hdfs dfs -ls /foo/.snapshot

  • 列出快照s0中的全部文件:
hdfs dfs -ls /foo/.snapshot/s0

  • 从快照中拷贝文件:

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

2. 快照操作


2.1 快照管理

仅仅有集群的管理员才有权限进行例如以下操作。

同意快照

把一个文件夹设置为snapshottable,就是设置同意对一个文件夹创建快照。

hdfs dfsadmin -allowSnapshot <path>

相应的API为HdfsAdmin中的void allowSnapshot(Path path)。

禁止快照

把原本snapshottable的文件夹设置为禁止快照,不同意对该文件夹创建快照。在对一个文件夹设置禁止快照之前,要先删除该文件夹的全部快照。

hdfs dfsadmin -disallowSnapshot <Path>

相应的API为HdfsAdmin中的void disallowSnapshot(Path path)。

2.2 用户操作

创建快照

为一个文件夹创建快照,仅仅有文件夹的所属人权限能为这个文件夹创建快照。

hdfs dfs -createSnapshot <Path> [<snapshotName>]

snapshotName是要创建的快照名,假设未定义。默认取当前时间戳作为快照名。类似”"s20130412-151029.033“。

相应的API为FileSystem中的Path createSnapshot(Path path)和Path createSnapshot(Path path, String snapshotName)。

删除快照

删除一个snapshottable文件夹的一个快照。

删除操作也须要文件夹的所属人权限。

hdfs dfs -deleteSnapshot <Path> <snapshotName>

相应的API为FileSystem中的void deleteSnapshot(Path path, String snapshotName)。

重命名快照

重命名一个快照。

也须要该文件夹的所属人权限。

hdfs dfs -renameSnapshot <Path> <oldName> <newName>

相应的API为FileSystem中的void renameSnapshot(Path path, String oldName, String newName)。

列出全部同意快照文件夹

列出全部当前用户有权限获取的。同意快照的文件夹。

hdfs lsSnapshottableDir

相应的API为DistributeFileSystem中的snapshottableDirectoryStatus[] getSnapshottableDirectoryListing()。

对照快照

对照两个快照。

这个操作须要用户对两个快照文件夹同一时候具有读权限。

hdfs snapshotDiff <Path> <fromSnapshot> <toSnapshot>

相应API为DistributeFileSystem中的SnapshotDiffReport getSnapshotDiffReport(Path path, String fromSnapshot, String toSnapshot)。

hadoop2.x HDFS快照介绍的更多相关文章

  1. 【Hadoop离线基础总结】HDFS详细介绍

    HDFS详细介绍 分布式文件系统设计思路 概述 只有一台机器时的文件查找:hello.txt /export/servers/hello.txt 如果有多台机器时的文件查找:hello.txt nod ...

  2. HDFS简单介绍及用C语言訪问HDFS接口操作实践

    一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广 ...

  3. 【Hadoop离线基础总结】HDFS入门介绍

    HDFS入门介绍 概述 HDFS全称为Hadoop Distribute File System,也就是Hadoop分布式文件系统,是Hadoop的核心组件之一. 分布式文件系统是横跨在多台计算机上的 ...

  4. HDFS Federation(转HDFS Federation(HDFS 联盟)介绍 CSDN)

    转载地址:http://blog.csdn.net/strongerbit/article/details/7013221 HDFS Federation(HDFS 联盟)介绍 1. 当前HDFS架构 ...

  5. HDFS原理介绍

    HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Googl ...

  6. HDFS的介绍

    设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,te ...

  7. 【转】HADOOP HDFS BALANCER介绍及经验总结

    转自:http://www.aboutyun.com/thread-7354-1-1.html 集群平衡介绍 Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加 ...

  8. hadoop2.x HDFS HA linux环境搭建

    HDFS High Availability Using the Quorum Journal Manager 准备3台机器可以更多   NN  DN  ZK  ZKFC  JN  RM  DM  n ...

  9. HDFS 入门介绍

    HDFS简介 HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上.HDFS能提供高吞吐量的数据访问, ...

随机推荐

  1. Struts2国际化-getText()方法

    转自https://blog.csdn.net/qq_43560838/article/details/83747604 一:简单理解 国际化简称i18n,其来源是英文单词 international ...

  2. shell加法运算及i++

    shell中不支持像普通c语言中的i++操作,默认都是字符串操作,但是通过以下几种方式可以进行变量的自增加 1.linux 用let 表示算术表达式 如下: i=0 let i +=1  或者 let ...

  3. Classes and functions

    As another example of a user-defined type, we’ll define a class called Time that records the time of ...

  4. zookeeper图形界面工具zooinspector

    链接: https://pan.baidu.com/s/1rabrwuC 密码: trwa zooinspector下载地址 解压后进入

  5. linux中不同颜色的文件代表什么不同的类型

    linux 文件颜色的含义,蓝色代表目录,绿色代表可执行文件,红色表示压缩文件,浅蓝色表示链接文件,灰色表示其他文件,红色闪烁表示链接的文件有问题了,黄色表示设备文件.蓝色文件----------目. ...

  6. vue-cli生成的模板各个文件详解(转)

    vue-cli脚手架中webpack配置基础文件详解 一.前言 原文:https://segmentfault.com/a/1190000014804826 vue-cli是构建vue单页应用的脚手架 ...

  7. luoguP1401 城市(二分答案+最大流)

    题意 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最长的边的长度最小,边不能重复 ...

  8. 题解 P2068 【统计和】

    这是一道单点修改,区间查询的线段树. 需要实现的操作有三个:建树,更新与查询. 首先,线段树用结构体维护,如下: struct node { int l, r; int val; } tree[max ...

  9. POJ——T 1470 Closest Common Ancestors

    http://poj.org/problem?id=1470 Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 20830   ...

  10. Dig A Well For Yourself

    See Paul's essay:  , I found paul is a genius, double checking. Mars June 2015