1

我尝试了解 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)

我制作了 durectory 的快照/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 目录中删除了一个子目录并运行恢复...该目录已恢复...但我不明白如何。有人可以描述更多细节吗?谢谢!

4

1 回答 1

2

HDFS 快照类似于具有结构共享的持久数据结构,因为新快照没有预先复制数据,只是指向源快照的指针(更准确地说是 inode 中的新记录)。它仅适用于记录任何数据的修改(HDFS 的追加和截断)。这类似于许多快照实现使用的写时复制 (COW)。

这项工作是在 JIRA HDFS-2802 中完成的,它对包括 HDFS 设计文档本身的设计进行了很好的讨论。*注意:讨论的 RW 快照尚未实现。

于 2014-08-09T20:32:51.860 回答