5

太强了, SecondaryNameNode 的工作流程

 3 years ago
source link: https://blog.csdn.net/qq_45069279/article/details/114527428
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

太强了, SecondaryNameNode 的工作流程

一个文件存储在哪个 DataNode 节点的哪个位置的元数据信息(metadata)上,是由 NameNode 节点决定的。随着存储文件的增多, NameNode 节点上存储的信息也会越来越多。因此,HDFS定义了一个 第二名称节点(SecondaryNameNode) ,用来及时更新这些metadata。

HDFS是一个分布式文件存储系统,文件分布式存储在多个 DataNode 节点上。

一、 SecondaryNameNode节点合并过程

fsimage 与 edits 文件合并的过程如下:
在这里插入图片描述

⑴ SecondaryNameNode 节点会定期与 NameNode 节点通信,请求其停止使用 edits 文件,暂时将新的更新操作写到一个新的 edits.new 文件上(这个操作是瞬间完成的)。

简述:将 HDFS 更新记录写入一个新的文件—— edits.new 。

⑵ SecondaryNameNode 节点通过 HTTP GET 方式从 NameNode 节点上获取 fsimage 和 edits 文件,并下载到本地的相应目录下。

简述:将 fsimage 和 editlog 文件通过 HTTP协议发送至 SecondaryNameNode 节点。

⑶ SecondaryNameNode 节点将下载下来的 fsimage 文件载入内存,然后执行 edits 文件中的各项更新操作,使内存中的 fsimage 文件保持最新 (这个过程就是将 edits 文件和 fsimage 文件合并)

简述:将 fsimage 与 editlog 文件合并,生成一个新的文件—— fsimage.ckpt 。(这个过程比较耗时,所以要在 SecondaryNameNode 节点上进行。如果在 NameNode 节点中进行,可能会导致整个系统卡顿)

⑷ SecondaryNameNode 节点执行完 中的操作后,会通过 HTTP POST 方式将新的 fsimage 文件发送到 NameNode 节点上。

简述:将生成的 fsimage.ckpt 文件,通过 HTTP协议发送至 NameNode 节点。

⑸ NameNode 节点用从 SecondaryNameNode 节点上接受到的新的 fsimage 文件,去替换旧的 fsimage 文件,同时将 edits.new 文件改名为 edits 。

简述:将 fsimage.ckpt 文件重命名为 fsimage ,将 edits.new 文件重命名为 edits 。

二、 检查点

SecondaryNameNode节点 定期把NameNode的 fsimage 和 edits 下载到本地,再将它们加载到内存并进行合并,最后把合并后新的 fsimage 返回NameNode (这个过程称为 检查点 )。

2.1 检查点合并的时间

启动检查点进程由两个参数控制,触发检查点操作,只需达到以下任一条件:

  1. 每隔 60 分钟( 使用到参数 dfs.namenode.checkpoint.period );
  2. 当 edits 文件达到 100万条事务,默认值为 100万条 ( 使用到参数 dfs.namenode.checkpoint.txns )。

2.2 检查点的作用

检查点的作用 (即 合并 的作用),主要是为了 减少NameNode的启动时间

如果想了解 HDFS 的组成架构,可以看看这篇文章:一文了解 HDFS 及其组成架构 。当然,如果想看看 HDFS 的工作机制是怎样的,可以参考这篇文章:图文详解 HDFS 工作机制


如果文章对您有帮助,请点个,留给评论支持一下😊,若有疑问可以私信留言😉。如果能给个三连(点赞收藏关注 )就最好啦😁。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK