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)。

时间: 2024-11-06 13:17:46

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

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

一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System.HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分布

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

转载地址:http://blog.csdn.net/strongerbit/article/details/7013221 HDFS Federation(HDFS 联盟)介绍 1. 当前HDFS架构和功能概述 我们先回顾一下HDFS功能.HDFS实际上具有两个功能:命名空间管理(Namespace management)和块/存储管理服务(block/storage management). 1.1 命名空间管理 HDFS的命名空间包含目录.文件和块.命名空间管理:是指命名空间支持对HDFS中

HDFS快照管理

前言 之前的文章中谈论了几个最近几年HDFS中比较重要的特性(比如异构存储),本文继续探讨另一重大特性-Snapshot.Snapshot就是快照的意思.Snapshot是一个非常好的东西,一个形象的比喻,快照就好像拍风景照时的那一个瞬间的投影,过了那个时间点之后,又会有新的一个瞬间投影.所以其实Snapshot快照用一个更好的词来形容就是"瞬间映像". Snapshot快照概念 在进一步分析HDFS内部的快照管理之前,需要先了解Snapshot快照的概念.首先一个很根本的原则: 快照

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

1. HDFS Architecture 一种Master-Slave结构.包括Name Node, Secondary Name Node,Data Node Job Tracker, Task Tracker.JobTrackers: 控制全部的Task Trackers .这两个Tracker将会在MapReduce课程里面具体介绍.以下具体说明HDFS的结构及其功能. Name Node:控制全部的Data Node. 存储了整个文件系统的信息. 全部新建文件,删除,拷贝等,都会在此更新

hadoop2.x hdfs完全分布式 HA 搭建

官网链接 hadoop配置文件主页:http://hadoop.apache.org/docs/r2.5.2/ HDFS hapdoop HA全分布配置:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html 总结步骤: 准备工作: 1. 配置java环境变量 可以在/etc/profile 或者在/root/.bash_profile中进行配置 2

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

转自:http://www.aboutyun.com/thread-7354-1-1.html 集群平衡介绍 Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点.当HDFS出现不平衡状况的时候,将引发很多问题,比如MR程序无法很好地利用本地计算的优势,机器之间无法达到更好的网络带宽使用率,机器磁盘无法利用等等.可见,保证HDFS中的数据平衡是非常重要的. 在Hadoop中,包含一个Balancer程序,通过运行这个程序,可以使得HDFS集群达到

HDFS架构介绍及java的api使用

HDFS设计前提与目标: 1. 硬件错误时常态 2. 流式数据访问 3. 大规模数据集 4. 简单一致性模型 5. 移动计算比移动数据更划算 一个HDFS集群包含一个单独的NameNode节点.多台DataNode服务器,并且同时被多个客户端访问,如图所示.所有的这些机器通常都是普通的Linux机器,运行着用户级别(user-level)的服务进程.NameNode管理文件系统的元数据(记录着文件数据在每个DataNode上位置副本信息,协调客户端对文件的访问,以及记录命名空间内的改动或命名空间

分布式文件系统HDFS简要介绍

HDFS 的设计主要基于以下六点考虑: (1)容错 独立计算机的硬件错误不能当异常情况处理,而属于正常状态.HDFS 文件系统中会有许多个普通计算机节点构成, 在任何时间任何一个节点都有可能出现故障, 因此HDFS 应该设计成能够自动恢复和快速检测错误, 这应该是维持HDFS 可靠运行的核心目标. (2)流式访问数据集 HDFS上运行的应用程序需要以流式访问所存储的数据集.这些应用程序都采用并行的批处理方式进行数据计算,不同于普通系统上用于数据处理的应用程序.提高数据访问吞吐量是研究HDFS的重

hadoop(4)Hdfs文件介绍

1.dfs.nameservices 说明:为namenode集群定义一个services name 默认值:null 比如设置为:ns1 2.dfs.ha.namenodes.<dfs.nameservices> 说明:nameservice 包含哪些namenode,为各个namenode起名 默认值:null 比如设置为nn1, nn2 3.dfs.namenode.rpc-address.ns1.nn1 说明:名为nn1的namenode 的rpc地址和端口号,rpc用来和datano