NameNode 和 SecondaryNameNode 的工作流程图
2022-06-22 18:03:18 0 举报
NameNode和SecondaryNameNode是Hadoop文件系统的核心组件,它们共同负责管理HDFS中的数据。NameNode是一个中心服务器,负责存储文件系统的元数据,而SecondaryNameNode则是一个辅助服务器,负责合并命名空间镜像和存储检查点。 当客户端向NameNode请求数据时,NameNode会返回数据块的位置信息。然后客户端直接与数据节点通信以获取数据。为了确保数据的一致性,SecondaryNameNode会定期与NameNode通信,获取命名空间镜像和存储检查点信息,并将这些信息合并成一个新的命名空间镜像。这样可以避免单点故障,并提高系统的可靠性。
作者其他创作
大纲/内容
NameNode
edits_00001
5. 加载到内存并合并
fsimage.chkpoint
4. 修改内存中的元数据
1. 加载 fsimage 镜像文件和 edits 日志到内存中
edits_inprogress_00001
4. 拷贝到 SNN
fsimage
加载 fsimage 镜像文件和 edits 日志到内存中
3. 新记录滚动写入新 edits 文件
1. 询问是否需要CheckPoint
NameNode:- NameNode 格式化启动之后,首次会创建 fsimage 和 edits 文件;- 非首次启动直接加载 fsimage 镜像文件和 edits 日志到内存中;- 客户端对元数据执行写操作会修改内存中的元数据并把操作记录追加到 edits 日志文件中。
3. 滚动正在写的 edits
8. 重命名为 fsimage
3. 记录操作日志更新滚动日志
7. 拷贝到 NN
2. 对元数据执行写操作
6. 生成新的 fsimage
内存
CheckPoint 触发条件:- 空间维度:当 edits_inprogress 文件达到指定大小的时候就会触发更新,默认是 64M,大小可以由 fs.checkpoint.size(core-site.xml)来指定,默认单位是字节(Hadoop 1.x 的配置,目前该配置已废弃);- 时间维度:当距离上一次更新达到指定间隔时间的时候触发更新,默认是 3600 秒,大小可以通过 dfs.namenode.checkpoint.period(hdfs-default.xml)来指定,默认单位是秒;- 操作纬度:edits 操作数量超过 100 万次的时候触发更新,次数可以通过 dfs.namenode.checkpoint.txns(hdfs-default.xml)来指定。
Secondary NameNode
edits_inprogress_00002
Client
2. 请求执行CheckPoint
0 条评论
下一页