我是hadoop的新手。我想知道在Hadoop中用于文件系统状态的快照和 fsimage 之间的区别。我听说两者都做同样的工作。那它们之间有什么区别呢?
最佳答案
HDFS具有主/从体系结构。 HDFS群集由单个NameNode和管理文件系统 namespace 并控制客户端对文件的访问的主服务器组成。对文件系统 namespace 或其属性的任何更改都由NameNode记录。 NameNode使用一个称为EditLog的事务日志来永久记录文件系统元数据发生的所有更改。例如,在HDFS中创建新文件,更改复制因子等会导致NameNode在EditLog中插入一条记录,指出这一点。 NameNode使用其本地主机OS文件系统中的文件来存储EditLog。
FsImage和EditLog齐头并进,这就是解释的原因。现在:
整个文件系统 namespace (包括块到文件的映射和文件系统属性)存储在称为FsImage的文件中。 FsImage作为文件存储在NameNode的本地文件系统中。
快照支持在特定时间存储数据副本。快照也可以用于整个文件系统。这不涉及数据复制,而是将文件大小,块信息等记录到快照表目录中。
用非常普通的术语来说,FsImage将信息存储在数据存储的位置,存储在多少块和相关的信息中,而Snapshot存储数据/文件系统的只读图像。
我希望这可以解释差异。
关于hadoop - fsimage和hadoop中的快照有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58971438/