我试图理解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 dir中删除一个子目录并运行恢复。。。这个目录被找到了。。。但我不明白怎么做。有人能描述更多细节吗?谢谢!
1条答案
按热度按时间hm2xizp91#
hdfs快照类似于具有结构共享的持久数据结构,因为新快照不需要预先复制数据,只需要指向源快照(更准确地说是inode中的新记录)的指针。它只支持记录任何数据的修改(对hdfs进行追加和截断)。这类似于许多快照实现所使用的写时拷贝(copy-on-write,cow)。
这项工作是在jira hdfs-2802中完成的,它对设计进行了很好的讨论,包括hdfs设计文件本身*注意:所讨论的rw快照尚未实现。