hadoop2.x HDFS快照介绍
说明:由于近期正好在研究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快照介绍的更多相关文章
- 【Hadoop离线基础总结】HDFS详细介绍
HDFS详细介绍 分布式文件系统设计思路 概述 只有一台机器时的文件查找:hello.txt /export/servers/hello.txt 如果有多台机器时的文件查找:hello.txt nod ...
- HDFS简单介绍及用C语言訪问HDFS接口操作实践
一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广 ...
- 【Hadoop离线基础总结】HDFS入门介绍
HDFS入门介绍 概述 HDFS全称为Hadoop Distribute File System,也就是Hadoop分布式文件系统,是Hadoop的核心组件之一. 分布式文件系统是横跨在多台计算机上的 ...
- HDFS Federation(转HDFS Federation(HDFS 联盟)介绍 CSDN)
转载地址:http://blog.csdn.net/strongerbit/article/details/7013221 HDFS Federation(HDFS 联盟)介绍 1. 当前HDFS架构 ...
- HDFS原理介绍
HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Googl ...
- HDFS的介绍
设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,te ...
- 【转】HADOOP HDFS BALANCER介绍及经验总结
转自:http://www.aboutyun.com/thread-7354-1-1.html 集群平衡介绍 Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加 ...
- hadoop2.x HDFS HA linux环境搭建
HDFS High Availability Using the Quorum Journal Manager 准备3台机器可以更多 NN DN ZK ZKFC JN RM DM n ...
- HDFS 入门介绍
HDFS简介 HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上.HDFS能提供高吞吐量的数据访问, ...
随机推荐
- hdoj--1301--Jungle Roads(克鲁斯卡尔)
Jungle Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- Mvc前后端显示不同的404错误页
最近做的系统前端是移动端的,后端是PC端,然后404页面不能用通一个,so 查找了一些资料,找到了一个解决办法 在Global.asax文件夹下添加Application_EndRequest事件处 ...
- [转]Adobe Creative Cloud 2015 下载 Adobe CC 2015 Download
Adobe Creative Cloud 2015 下载 Adobe 宣布 Creative Cloud 设计套件全线更新! Adobe CC 2015新功能包括: – Premiere Pro ...
- C# 引用DLL版本冲突
已解决,到官网上下载旧key版本,然后再重定向即可. 手动引用两个版本的DLL错误的原因是我 publicKeyToken 大小写的问题(竟然没校验~~) 但我想不明白,这样搞如果依赖一多的话,甚至那 ...
- gitHub上如何设置或者取消电子邮箱提醒
原文链接:点我 我们正常注册的gitHub一般应该都是电子邮箱的方式,在注册账号时可能选择或者默认给了各种提醒,但是gitHub的邮箱提醒真的就比较烦人了,特别是最近团队开发项目,什么动态都有提醒,就 ...
- ZOJ-3261 Connections in Galaxy War 并查集 离线操作
题目链接:https://cn.vjudge.net/problem/ZOJ-3261 题意 有n个星星,之间有m条边 现一边询问与x星连通的最大星的编号,一边拆开一些边 思路 一开始是真不会,甚至想 ...
- java 基于 bootstrap_datagrid 分页
1.首先引入datagrid js ,css $("#datagrid").bootstrap_datagrid({ url : "<%=path%>/us ...
- Linux中常用命令(文件)
1.cat 显示出文件的全部内容 (1)格式:cat 文件名 -n 显示行号 (2)特点:一次性显示所有文件内容 2.tac 从最后一行倒着显示文件全部内容 3.more 全屏方式分页显示文件内容 回 ...
- who---显示目前登录系统的用户信息
who命令是显示目前登录系统的用户信息.执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器. 语法 who(选项) ...
- 题解 CF915D 【Almost Acyclic Graph】
这道题我第一次的想法是直接判环的数量,然而事实证明实在是太naive了. 随便画个图都可以卡掉我的解法.(不知道在想什么) 这道题的正解是拓扑排序. 朴素的想法是对所有边都跑一次拓扑,但这样$O(m( ...