name节点在哪里存储fsimage和编辑日志?

xggvc2p6  于 2021-06-03  发布在  Hadoop
关注(0)|答案(5)|浏览(573)

我是一个java程序员,学习hadoop。我读到hdfs中的name节点将其信息存储到两个文件中,即fsimage和editlog。在启动的情况下,它从磁盘读取这些数据并执行检查点操作。
但是在很多地方我也看到name node将数据存储在ram中&这就是apache推荐name node服务器使用高ram的原因。
请告诉我这件事。它在ram中存储什么数据?它在哪里存储fsimage和编辑日志?
对不起,如果我问了什么明显的问题。

flseospp

flseospp1#

让我先回答
它在ram中存储什么数据?它在哪里存储fsimage和编辑日志?
在ram中—文件到块和块到数据节点的Map。在持久性存储中(包括编辑日志和fsimage)--与文件相关的元数据(权限、名称等)
关于fsimage和editlog的存储位置@mashuai的答案是正确的。
更详细的讨论,你可以阅读这个

hlswsv35

hlswsv352#

它存储fsimage和editlog dfs.name.dir ,在里面 hdfs-site.xml . 启动集群时,namenode将fsimage和editlog加载到内存中。

fkaflof6

fkaflof63#

fsimage和editlog存储在dfs.name.dir中,它位于hdfs-site.xml中。在集群启动期间,namenode将fsimage和editlog加载到内存(ram)中。

sg24os4d

sg24os4d4#

当namenode启动时,它从持久性存储(磁盘)加载fsimage,它位于属性指定的位置 dfs.name.dir (hadoop-1.x)或 dfs.namenode.name.dir (hadoop-2.x)在 hdfs-site.xml . fsimage被加载到主内存中。正如您在namenode启动期间所要求的,它将执行检查点操作。namenode将fsimage保存在ram中,以便快速服务请求。
除了初始检查点之外,还可以通过在中调整以下参数来控制后续检查点 hdfs-site.xml .

dfs.namenode.checkpoint.period       # in second 3600 Secs by default
dfs.namenode.checkpoint.txns         # No of namenode transactions
w9apscun

w9apscun5#

当name节点启动时,它将进入安全模式。它从持久存储加载fsimage并重放编辑日志,以创建hdfs存储的更新视图(文件到块的Map)。然后将更新后的fsimage写入持久存储。现在name节点等待来自数据节点的块报告。从块报告创建块到数据节点的Map。当name节点收到一定阈值的块报告时,它将退出安全模式,name节点可以开始服务于客户端请求。每当客户端对元数据进行任何更改时,namenode(nn)首先在编辑日志段中写入的内容都会随着事务id的增加而更改到持久存储(硬盘)。然后它更新内存中的fsimage。

相关问题