名称节点存储什么?

时间:2013-12-20 01:51:40

标签: hadoop mapreduce hdfs bigdata

  1. 如果是“名称节点”, 什么存储在主存储器中以及存储在辅助存储器(硬盘)中的内容。

  2. “file to block mapping”是什么意思?

  3. fsimage和编辑日志究竟是什么?

1 个答案:

答案 0 :(得分:15)

  

在“名称节点”的情况下,存储在主存储器中的内容以及得到的内容   存储在辅助存储器(硬盘)中。

要阻止映射的文件,数据节点上的块的位置,活动数据节点,一堆其他元数据都存储在NameNode的内存中。当您检查NameNode状态网站时,几乎所有这些信息都存储在内存中。

存储在磁盘上的唯一内容是fsimage,编辑日志和状态日志。有趣的是,NameNode从未真正在磁盘上使用这些文件,除非它启动时。 fsimageedits文件几乎只存在,以便在需要停止或崩溃时能够重新启动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

fsimageedits以他们的方式存在,因为每次完成HDFS操作时编辑潜在的大量fsimage文件在系统上都很难。相反,edits文件只是附加到。但是,对于NameNode启动和数据存储的原因,不时地将编辑内容滚动到fsimage中是一件好事。

SecondaryNameNode是定期获取fsimageedits文件并将它们合并到一个新的检查点fsimage文件中的过程。这是防止edits变得庞大的重要过程。