说明:由于近期正好在研究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)。

转载于:https://www.cnblogs.com/blfbuaa/p/7016603.html

hadoop2.x HDFS快照介绍相关推荐

  1. HDFS(一)HDFS基本介绍

    HDFS基本介绍 HDFS的Master-Slave结构 HDFS角色作用简介 HDFS 分块存储 抽象成数据块的好处 HDFS 副本机制 名字空间(NameSpace) NameNode 功能 Da ...

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

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

  3. HDFS回收站、Trash机制、Trash Checkpoint、快照功能使用、通过Snapshot快照恢复数据、备份数据、HDFS快照的实现

    HDFS回收站.Trash机制.Trash Checkpoint.快照功能使用 1.回收站 回收站的功能给了我们一剂"后悔药".回收站保存了删除的文件.文件夹.图片.快捷方式等.这 ...

  4. 大数据介绍、集群环境搭建、Hadoop介绍、HDFS入门介绍

    大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 文章目录 大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 1.课前资料 2.课程整体介绍 3.大数据介绍 3.1 什么是大数 ...

  5. HDFS HA介绍及配置理解

    1.HDFS HA介绍 相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA和Federaion.HA即为High Availability,用于解决NameNode单点 ...

  6. 云小课 | MRS基础入门之HDFS组件介绍

    摘要:HDFS是MapReduce服务中的基础文件系统,全称为Hadoop的分布式文件系统(Hadoop Distributed File System),可支持实现大规模数据可靠的分布式读写. 本文 ...

  7. Hadoop系列 (三):HDFS详细介绍

    文章目录 Hadoop系列文章 HDFS简介 HDFS基本概念 分布式文件系统特点 HDFS设计目标 HDFS架构 HDFS应用场景 HDFS三大组件 NameNode SecondaryNameNo ...

  8. Hadoop自学笔记(二)HDFS简单介绍

    1. HDFS Architecture 一种Master-Slave结构.包括Name Node, Secondary Name Node,Data Node Job Tracker, Task T ...

  9. Apache HBase快照介绍

    转自 http://www.importnew.com/4966.html CDH是Cloudera的完全开源分布式Apache Hadoop及相关项目(包括Apache HBase).CDH的当前版 ...

最新文章

  1. 这款AI语音模型让派大星承认自己是钢铁侠,造假小扎对口型,火到挤爆服务器|在线可玩...
  2. IMX6的相关音频结构体的定义
  3. Java不确定参数个数的函数方法,实现求多个数最小值
  4. 卸载docker后部署k8s后docker无法启动问题
  5. springboot线程池使用
  6. How to make BBED(Oracle Block Brower and EDitor Tool) on Unix/Linux/Windows
  7. html里面判断字段显示,HTML特殊字符显示
  8. 基于Android的简单购物,基于Android的购物系统设计与实现
  9. 常用数据库分页查询SQL汇总
  10. Codeforces Round #322 A Vasya the Hipster
  11. 嵌入式开发板硬件操作入门学习3——电机驱动板
  12. 零基础入门 Vue3 | 附高清原图
  13. 如何提高技术团队协作能力
  14. 评论:雷军再次分享互联网七字诀 称用诺基亚的人out了
  15. arduino mega 2560 针脚说明
  16. python中如何将数字转换成中文数字_Python把数字变成中文的方法
  17. 电子货架标签----智能仓库管理
  18. 计算机组成原理六单元答案,计算机组成原理第六章中央处理器(含答案)
  19. ESP32 ESP-IDF安装教程(windows 64位)
  20. 硬件知识-ADC模数转换芯片

热门文章

  1. 天津天河计算机技术有限公司,“天河一号”超级计算机落户天津,命名为“天河”,取天津与“银河团队...
  2. linux脚本编写规则,shell脚本编写守则
  3. android如何导入活动,关于android:如何将活动值传递给另一个活动(Kotlin)
  4. mysql恢复 报错_Mysql 数据恢复报错
  5. cdrom是多媒体微型计算机,全国计算机二级题库第三章
  6. ssrf漏洞内网渗透_渗透技巧之SSRF
  7. MySQL中文乱码问题
  8. sml完整形式_411的完整形式是什么?
  9. JavaScript中的String()函数与示例
  10. 04-图像的形状绘制