Hadoop createSnapshot和deleteSnapshot命令
概述
HDFS快照是文件系统的只读时间点副本。 可以对文件系统的子树或整个文件系统进行快照。 快照的一些常见用例是数据备份,防止用户错误和灾难恢复。
HDFS快照的实现是高效的:
快照创建是即时的:成本是O(1),不包括inode查找时间。
仅当对快照进行修改时才使用附加内存:内存使用为O(M),其中M是修改的文件/目录的数量。
不复制datanode中的块:快照文件记录块列表和文件大小。 没有数据复制。
快照不会对常规HDFS操作产生负面影响:修改会按相反的时间顺序记录,以便可以直接访问当前数据。 通过从当前数据中减去修改来计算快照数据。
Snapshottable目录
一旦目录设置为可快照,就可以对任何目录进行快照。 snaphottable目录能够容纳65,536个同步快照。可快照目录的数量没有限制。 管理员可以将任何目录设置为可快照。如果快照目录中有快照,则在删除所有快照之前,不能删除或重命名目录。
当前不允许嵌套snaphottable目录。 换句话说,如果一个目录的祖先/后代是一个snaphottable目录,则不能将其设置为snaphottable。
快照路径
对于快照目录,路径组件“.snapshot”用于访问其快照。 假设/ foo是snaphottable目录,/ foo / bar是/ foo中的文件/目录,而/ foo有一个快照s0。 然后,路径
/foo/.snapshot/s0/bar
指的是/ foo / bar的快照副本。 通常的API和CLI可以使用“.snapshot”路径。 以下是一些示例。
列出snaphottable目录下的所有快照:
hdfs dfs -ls /foo/.snapshot
列出快照s0中的文件:
hdfs dfs -ls /foo/.snapshot/s0
从快照s0复制文件:
hdfs dfs -cp -ptopax /foo/.snapshot/s0/bar /tmp
请注意,此示例使用保留选项来保留时间戳,所有权,权限,ACL和XAttrs。
使用快照升级到HDFS版本
HDFS快照功能引入了用于与快照交互的新保留路径名:.snapshot。 从旧版本的HDFS升级时,名为.snapshot的现有路径需要首先重命名或删除,以避免与保留路径冲突。 有关详细信息,请参阅HDFS用户指南中的升级部分。
快照操作
管理员操作
注意:本节中描述的操作需要超级用户权限。
允许快照
允许创建目录的快照。 如果操作成功完成,则目录变为可快照。
命令
hdfs dfsadmin -allowSnapshot <path>
参数
path:snaphottable目录的路径。
另请参阅HdfsAdmin中的相应Java API void allowSnapshot(路径路径)。
不可快照
不允许创建目录的快照。 在禁用快照之前,必须删除目录的所有快照。
命令
hdfs dfsadmin -disallowSnapshot <path>
参数
path:snaphottable目录的路径。
另请参阅HdfsAdmin中的相应Java API void disallowSnapshot(路径路径)。
用户操作
注意: HDFS超级用户可以执行所有操作而不满足各个操作中的权限要求。
创建快照
创建快照目录的快照。 此操作需要snaphottable目录的所有者特权。
命令
hdfs dfs -createSnapshot <path> [<snapshotName>]
参数
path:snaphottable目录的路径。
snapshotName:快照名称,它是一个可选参数。 当省略时,使用格式为“’s’yyyyMMdd-HHmmss.SSS”的时间戳生成默认名称,例如。 “s20130412-151029.033”。
另请参见文件系统中相应的Java API路径createSnapshot(路径路径)和路径createSnapshot(路径路径,字符串snapshotName)。 在这些方法中返回快照路径。
删除快照
从快照目录中删除快照。 此操作需要snaphottable目录的所有者特权。
命令
hdfs dfs -deleteSnapshot <path> <snapshotName>
参数
path:snaphottable目录的路径。
snapshotName:快照名。
另请参见文件系统中相应的Java API void deleteSnapshot(Path path,String snapshotName)。
重命名快照
重命名快照。 此操作需要snaphottable目录的所有者特权。
命令
hdfs dfs -renameSnapshot <path> <oldName> <newName>
参数
path:snaphottable目录的路径。
oldName:原快照名称。
newName:新快照名称。
另请参见FileSystem中对应的Java API void renameSnapshot(Path path,String oldName,String newName)。
获取Snapshottable目录列表
获取当前用户有权拍摄快照的所有快照表目录。
命令
hdfs lsSnapshottableDir
另请参见DistributedFileSystem中的相应Java API SnapshottableDirectoryStatus [] getSnapshottableDirectoryListing()。
获取快照差异报告
获取两个快照之间的差异。 此操作需要两个快照中的所有文件/目录的读访问权限。
命令
hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
参数
path:snaphottable目录的路径。
fromSnapshot:原快照。
toSnapshot:要对比的快照。
结果
+ 文件或者目录被创建。
– 文件或者目录被删除。
M 文件或者目录已修改。
R 文件/目录已重命名。
RENAME条目表示文件/目录已重命名,但仍位于相同的snaphottable目录下。 如果将文件/目录重命名为snapshottble目录之外,则将其报告为已删除。 从snapshottble目录之外重命名的文件/目录将报告为新创建。
快照差异报告不保证相同的操作顺序。 例如,如果我们将目录“/ foo”重命名为“/ foo2”,然后将新数据附加到文件“/ foo2 / bar”,差异报告将是:
R. /foo -> /foo2
M. /foo/bar
即,使用重命名之前的原始路径(上例中的“/ foo / bar”)报告重命名的目录下的文件/目录的更改。
另请参见DistributedFileSystem中的相应Java API SnapshotDiffReport getSnapshotDiffReport(Path path,String fromSnapshot,String toSnapshot)。
转载:https://www.vastyun.com/note_hadoop/300.html
Hadoop createSnapshot和deleteSnapshot命令的更多相关文章
- hadoop/hdfs/yarn 详细命令搬运
转载自文章 http://www.cnblogs.com/davidwang456/p/5074108.html 安装完hadoop后,在hadoop的bin目录下有一系列命令: container- ...
- hadoop部署小结的命令
hadoop部署总结的命令 学习笔记,转自:hadoop部署总结的命令http://www.aboutyun.com/thread-5385-1-1.html(出处: about云开发)
- Hadoop生态圈-使用Kafka命令在Zookeeper中对应关系
Hadoop生态圈-使用Kafka命令在Zookeeper中对应关系 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zookeeper保存kafka的目录 二.使用Ka ...
- Hadoop生态圈-hbase常用命令
Hadoop生态圈-hbase常用命令 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- hadoop之 HDFS fs 命令总结
版本:Hadoop 2.7.4 -- 查看hadoop fs帮助信息[root@hadp-master sbin]# hadoop fsUsage: hadoop fs [generic option ...
- [b0002] Hadoop HDFS cmd常用命令练手
目的: 学会HDFS CLI 常用操作 环境: Hadoop 2.6.4 伪分布式版 环境搭建参考本博客前篇文章: 伪分布式 hadoop 2.6.4 帮助: hadoop@ssmaster:~$ h ...
- Hadoop HDFS的常用命令
1.将目录/root/data/下的item.txt复制到HDFS下的/user/root下: hadoop fs -copyFromLocal /root/data/item.txt itemdat ...
- Hadoop操作hdfs的命令【转载】
本文系转载,原文地址被黑了,故无法贴出原始链接. Hadoop操作HDFS命令如下所示: hadoop fs 查看Hadoop HDFS支持的所有命令 hadoop fs –ls 列出目录及文件信息 ...
- Hadoop学习笔记-HDFS命令
进入 $HADOOP/bin 一.文件操作 文件操作 类似于正常的linux操作前面加上“hdfs dfs -” 前缀也可以写成hadoop而不用hdfs,但终端中显示 Use of this scr ...
随机推荐
- Python 解码 Unicode 转义字符串 (转)
其实,这里要讨论的内容是针对 Python2 的,实际上也是 Python2 中让人头疼的编码问题,而 Python3 则好处理得多. 先来看看例子: >>> s = "我 ...
- STM32 通用T2、T3、T4、T5定时器详解
定时器初始化配置 void TIM3_Configuration(void)//1MS { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_DeI ...
- 14. First Position of Target 【easy】
14. First Position of Target [easy] For a given sorted array (ascending order) and a targetnumber, f ...
- shell脚本之微信报警功能的实现
导语:现在越来越流行微信报警功能了.下面就来看看具体实现吧! 1.先申请一个微信企业号 传送门:http://work.weixin.qq.com/ 2.添加用户 2.创建应用 3.创建管理组并添加管 ...
- 李洪强-CALayer4-自定义层
自定义层,其实就是在层上绘图,一共有2种方法,下面详细介绍一下. 一.自定义层的方法1 方法描述:创建一个CALayer的子类,然后覆盖drawInContext:方法,使用Quartz2D API进 ...
- 微信小程序的目录结构解剖
在微信小程序当中,我们看到有: .js后缀文件,.json后缀文件,.wxss后缀文件,.wxml后缀文件 .js后缀文件就是我们写的普通的js文件 .json后缀文件就是小程序的配置文件,比如:wi ...
- org.mockito.exceptions.misusing.CannotStubVoidMethodWithReturnValue
错误原因:mock的时候,不能mock重载的方法 解决方法:直接mock它的父类的方法 org.mockito.exceptions.misusing.CannotStubVoidMethodWith ...
- 如何上传package到pypi
首先访问 pypi 创建一个帐号,并且需要验证一个邮箱,注意网易163邮箱收不到验证的邮件. 安装上传工具 pip install --user twine 执行上传命令 python setup.p ...
- 微信错误提示code= -4/微信发送被拒绝
微信错误提示code= -4/微信发送被拒绝 在做第三方登录时.出现微信授权返回的错误码为:code= -4,原因是由于: (微信开放平台的签名填错了微信平台注冊的签名应该是:使用微信签名工具安卓到手 ...
- PHP基础之Autoload
PHP的自动加载autoload机制很重要,这里做2个小练习 原创文章,转载请注明:http://www.cnblogs.com/phpgcs 文件结构如下,2种方式实现自动加载 1,自定义函数 2, ...