我试图理解Hadoop快照(http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html)的机制。不幸的是,apache官方网站上的信息量非常有限,所以请在这里发布消息。
我在我的Hadoop集群上尝试了这个功能。在获取快照之前,我尝试使用hdfs dfsadmin -report实用程序:
[hdfs@bda11node01 ~]$ hdfs dfsadmin -report
...
DFS Used: 15521319604094 (14.12 TB)我创建了/tmp的快照,并得到了子目录:
[hdfs@bda11node01 ~]$ hadoop fs -du -s -h /tmp/.snapshot/snap3
5.1 T /tmp/.snapshot/snap3第一件让我惊讶的事情是快照的大小和拍摄这个快照的时间。时间是立即的,大小是一样的。第二件让我惊讶的事情是来自hdfs实用程序的报告:
[hdfs@bda11node01 ~]$ hdfs dfsadmin -report
...
DFS Used: 15521319604094 (14.12 TB)在此之后,我从/tmp目录中删除一个子目录并运行recovery...这个目录被找回..。但我不明白是怎么做到的。有谁能描述更多细节吗?谢谢!
发布于 2014-08-10 04:32:52
HDFS快照类似于具有结构共享的persistent data structure,因为没有为新快照预先复制数据,只有一个指向源快照的指针(更准确地说,是inode中的新记录)。它只在记录任何数据的修改(HDFS的附加和截断)上。这类似于许多快照实现所使用的写入时复制(COW)。
This work was done in JIRA HDFS-2802对设计有很好的讨论,包括HDFS设计文档本身。*注意:讨论的RW快照尚未实现。
https://stackoverflow.com/questions/25137947
复制相似问题