name节点存储什么?

z9ju0rcb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(459)

在“名称节点”的情况下,什么存储在主内存中,什么存储在辅助内存(硬盘)中。
我们所说的“文件到块Map”是什么意思?
什么是fsimage和edit日志?

yqhsw0fo

yqhsw0fo1#

在“名称节点”的情况下,什么存储在主内存中,什么存储在辅助内存(硬盘)中。
文件到块的Map、数据节点上块的位置、活动数据节点、一堆其他元数据都存储在namenode的内存中。当您查看namenode状态网站时,几乎所有的信息都存储在内存中的某个地方。
磁盘上唯一存储的是fsimage、编辑日志和状态日志。有趣的是,namenode从未真正使用过磁盘上的这些文件,除非它在启动时。这个 fsimage 以及 edits 文件的存在只是为了在namenode需要停止或崩溃时能够将其恢复。
我们所说的“文件到块Map”是什么意思?
当一个文件被放入hdfs时,它被分割成块(大小可配置)。假设您有一个名为“file.txt”的文件,其大小为201mb,块大小为64mb。您将得到三个64mb块和一个9mb块(64+64+64+9=201)。namenode跟踪hdfs中的“file.txt”Map到这四个块的事实。datanodes存储块,而不是文件,因此Map对于理解数据所在的位置以及数据是什么非常重要。
什么是fsimage和edit日志?
namenode内存的最近检查点存储在 fsimage . 该检查点的namenode状态(即文件->块Map、文件属性等)可以从此文件还原。
这个 edits 文件是来自 fsimage 从最后一个检查站开始。这些都是像文件被删除或添加。如果namenode发生故障,这一点非常重要,因为它具有自存储在中的最后一个检查点以来的最新更改 fsimage . namenode出现的方式是将 fsimage 然后应用 edits 按照它在Map上看到它们的顺序 edits 文件。 fsimage 以及 edits 因为编辑潜在的大量 fsimage 每次执行hdfs操作时,文件都会对系统造成影响。取而代之的是 edits 文件只是附加到。但是,对于namenode启动和数据存储的原因,时不时地将编辑滚动到fsimage中是一件好事。
secondarynamenode是定期执行 fsimage 以及 edits 文件并将它们合并到一个新的检查点中 fsimage 文件。这是一个重要的预防过程 edits 从变大。

相关问题