[HDFS Manual] CH8 HDFS Snapshots
HDFS Snapshots
1. 概述
HDFS快照是只读的,一个时间点文件系统的一个副本。快照可以是整个文件系统或者文件系统的子树。快照通常用来备份,保护用户错误和灾难恢复。
HDFS快照的实现:
· 快照创建是瞬间的,花费是O(1)不包过inode lookup时间。
· 如果和快照相关的,在修改的时候会使用额外的内存:内存使用时O(M),M是修改的文件和目录个数。
· Datanode中的block不会被复制:快照只会记录block list和文件大小。不会进行数据复制。
· 快照不会影响HDFS操作:修改被反转再被顺序记录,这样当前的数据还是和以前一样访问。快照的数据通过当前的数据然后使用记录undo。
1.1 Snapshottable目录
快照可以在任何目录上,一旦目录被设置了snapshottable。Snapshottable允许65536个并发快照。Snapshottable目录个数没有限制。管理员可以对任何目录设置为snapshottable。如果快照在snapshottable目录,在快照删除前,目录不能被删除,也不能重命名。
snapshottable目录是不能嵌套的。也就是说如果父目录,或者子目录已经设置了snapshottable目录,那么就不能再设置。
1.2 快照路径
对于一个snapshottable目录,路径.snapshot用来访问快照。假设/foo是是snapshottable目录,/foo/bar是/foo中的文件,并且/foo有一个快照s0。/foo/.snapshot/s0/bar就是/foo/bar的快照副本。通常的API和CLI可以在.snapshot路径上使用。比如:
· 列出所有snapshottable目录下的所有快照:
hdfs dfs -ls /foo/.snapshot
·
列出快照s0的所有文件:
hdfs dfs -ls /foo/.snapshot/s0
·
从快照中复制文件:
hdfs dfs -cp -ptopax /foo/.snapshot/s0/bar /tmp
2. 带快照的更新
HDFS快照特性引入了一个新的保留地址用来和快照交互:.snapshot。当从老的HDFS版本不支持快照的,升级时如果有.snapshot那么需要先删除避免出现冲突。
3. 快照操作
3.1 管理操作
允许快照
允许对目录创建快照,如果完成并且成功那么目录就会变成snapshottable。
hdfs dfsadmin -allowSnapshot <path>
参数:snapshottable目录的地址。
禁止快照
禁止目录创建快照。所有快照在禁用前必须删除
hdfs dfsadmin -disallowSnapshot <path>
参数:snapshottable目录的地址。
3.2 用户操作
创建快照
在snapshottable目录上创建快照。需要snapshottable目录的owner权限
hdfs dfs -createSnapshot <path> [<snapshotName>]
snapshotname默认是s'yyyyMMdd-HHmmss.SSS
比如s20130412-151029.033
删除快照
从snapshottable目录删除快照。需要snapshottable 目录owner权限。
hdfs dfs -deleteSnapshot <path> <snapshotName>
重命名快照
快照重命名,需要snapshottable
目录owner权限。
hdfs dfs -renameSnapshot <path> <oldName>
<newName>
获取snapshottable目录列表
列出所有snapshottable目录
hdfs lsSnapshottableDir
获取快照不通的报告
获取2个快照的不同,需要2个快照目录的所有读权限。
命令:hdfs
snapshotDiff <path> <fromSnapshot> <toSnapshot>
结果:
+ |
The file/directory has been created. |
- |
The file/directory has been deleted. |
M |
The file/directory has been modified. |
R |
The file/directory has been renamed. |
RENAME表示文件重命名但是还在snapshottable目录下。一个文件或者目录移动出了snapshottable目录,那么就被认为是删除了。一个文件或者目录移动到snapshottable目录,就被认为是创建。
Snapshot差异报告不会爆炸相同操作的顺序。比如如果目录从/foo重命名为/foo2然后在/foo2创建了一个文件bar,那么差异报告:
R. /foo -> /foo2
M. /foo/bar
在重命名后的目录上的操作,报告是之前路径的,比如上面的报告。
[HDFS Manual] CH8 HDFS Snapshots的更多相关文章
- [HDFS Manual] CH3 HDFS Commands Guide
HDFS Commands Guide HDFS Commands Guide 3.1概述 3.2 用户命令 3.2.1 classpath 3.2.2 dfs 3.2.3 envvars 3.2.4 ...
- [HDFS Manual] CH6 HDFS Federation
HDFS Federation HDFS Federation 1 Background 2.多个namenode/namespace 2.1 关键好处 3 联合配置 3.1 配置 3.2 格式化na ...
- [HDFS Manual] CH2 HDFS Users Guide
2 HDFS Users Guide 2 HDFS Users Guide 2.1目的 2.2.概述 2.3.先决条件 2.4. Web Interface 2.5. Shell Command 2. ...
- [HDFS Manual] CH1 HDFS体系结构
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- [HDFS Manual] CH4 HDFS High Availability Using the Quorum Journal Manager
HDFS High Availability Using the Quorum Journal Manager HDFS High Availability Using the Quorum Jour ...
- 【hadoop】python通过hdfs模块读hdfs数据
hdfs官网:http://hdfscli.readthedocs.io/en/latest/api.html 一个非常好的博客:http://blog.csdn.net/gamer_gyt/arti ...
- HDFS之四:HDFS原理解析(总体架构,读写操作流程)
前言 HDFS 是一个能够面向大规模数据使用的,可进行扩展的文件存储与传递系统.是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和 存储空间.让实际上是通过网络来访问文件 ...
- Hadoop之hadoop fs和hdfs dfs、hdfs fs三者区别
适用范围 案例 备注 小记 hadoop fs 使用范围最广,对象:可任何对象 hadoop dfs 只HDFS文件系统相关 hdfs fs 只HDFS文件系统相关(包括与 ...
- [HDFS Manual] CH7 ViewFS Guide
ViewFS Guide ViewFS Guide 1 介绍 2. The Old World(Prior to Federation) 2.1单个Namenode Clusters 2.2 路径使用 ...
随机推荐
- chrome插件的开发
基本目录:icon,manifest,html,js. chrome插件的使用,运行,打包. chrome浏览器打开扩展,勾选开发者模式,点击加载没打包的扩展,选中目录,加载插件. 右上角出现插件图标 ...
- Mysql You can change this value on the server by setting the max_allowed_packet' variable. 异常
MySQL根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败. 查看目前配置, Windows 系统 配置文件为 my ...
- Python2.*与Python3.*共存问题
安装Python 2.7后,本来在3.4下能正常使用的脚本无法运行.网上有的方法是把两个版本的主程序分别改名为python2和python3,人眼判断脚本,手输命令行执行脚本.像我这样喜欢双击.拖拽的 ...
- golang单例模式
1.定义:单例对象的类必须保证只有一个实例存在,全局有唯一接口访问. 2.分类: 懒汉方式:指全局的单例实例在第一次被使用时构建. 饿汉方式:指全局的单例实例在类装载时构建. 3.实现: (1)懒汉方 ...
- JN5139 zigbee 资料
JN5139模块是一系列可以使使用者在最短的时间内在最低的成本下实现IEEE802.15.4或ZigBee兼容系统的表贴模块.此款模块减少了用户对于RF板设计和测试框架的昂贵漫长的开发时间.这些模块利 ...
- 潭州课堂25班:Ph201805201 爬虫高级 第十三 课 代理池爬虫检测部分 (课堂笔记)
1,通过爬虫获取代理 ip ,要从多个网站获取,每个网站的前几页2,获取到代理后,开进程,一个继续解析,一个检测代理是否有用 ,引入队列数据共享3,Queue 中存放的是所有的代理,我们要分离出可用的 ...
- javaweb笔记
(1)web项目需复制web.xml文件 (2)需要复制classes文件 需要把bin里面的com----复制到classes中
- Android Studio 创建不同分辨率的图标
参考资料 Android Studio怎么创建不同分辨率的图标
- python gui 之 tkinter库
http://blog.csdn.net/jcodeer?viewmode=contents http://tieba.baidu.com/p/3082739560 http://blog.sina. ...
- SDN+DPI文献阅读(2)
A Sophisticated Packet Forwarding Scheme with Deep Packet Inspection in an OpenFlow Switch 来源:Intern ...