广州谷歌seo公司,seo教学视频教程,.net网站开发课程设计,建设银行 网站首页说明#xff1a;由于近期正好在研究hadoop的快照机制。看官网上的文档讲的非常仔细。就顺手翻译了。也没有去深究一些名词的标准译法#xff0c;所以可能有些翻译和使用方法不是非常正确#xff0c;莫要介意~~ 原文地址#xff1a;#xff08;Apache hadoop的官方文档由于近期正好在研究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