如果是“名称节点”, 什么存储在主存储器中以及存储在辅助存储器(硬盘)中的内容。
“file to block mapping”是什么意思?
fsimage和编辑日志究竟是什么?
答案 0 :(得分:15)
在“名称节点”的情况下,存储在主存储器中的内容以及得到的内容 存储在辅助存储器(硬盘)中。
要阻止映射的文件,数据节点上的块的位置,活动数据节点,一堆其他元数据都存储在NameNode的内存中。当您检查NameNode状态网站时,几乎所有这些信息都存储在内存中。
存储在磁盘上的唯一内容是fsimage,编辑日志和状态日志。有趣的是,NameNode从未真正在磁盘上使用这些文件,除非它启动时。 fsimage
和edits
文件几乎只存在,以便在需要停止或崩溃时能够重新启动NameNode。
“file to block mapping”是什么意思?
将文件放入HDFS时,会将其拆分为块(可配置大小)。假设你有一个名为“file.txt”的文件,它是201MB,你的块大小是64MB。最终将有三个64MB块和一个9MB块(64 + 64 + 64 + 9 = 201)。 NameNode跟踪HDFS中的“file.txt”映射到这四个块的事实。 DataNodes存储块,而不是文件,因此映射对于了解数据的位置和数据的位置非常重要。
fsimage和编辑日志究竟是什么?
NameNode内存的最近检查点存储在fsimage
中。可以从该文件恢复该检查点的NameNode状态(即文件 - >块映射,文件属性等)。
edits
文件是自上一个检查点以来fsimage
的所有新更新。这些是删除或添加的文件。这对于NameNode发生故障非常重要,因为它具有自fsimage
中存储的最后一个检查点以来的最新更改。 NameNode出现的方式是将fsimage
表示为内存,然后按照它在edits
文件中看到的顺序应用edits
。
fsimage
和edits
以他们的方式存在,因为每次完成HDFS操作时编辑潜在的大量fsimage
文件在系统上都很难。相反,edits
文件只是附加到。但是,对于NameNode启动和数据存储的原因,不时地将编辑内容滚动到fsimage中是一件好事。
SecondaryNameNode是定期获取fsimage
和edits
文件并将它们合并到一个新的检查点fsimage
文件中的过程。这是防止edits
变得庞大的重要过程。