程序员

太强了, SecondaryNameNode 的工作流程

作者:admin 2021-07-05 我要评论

一个文件存储在哪个 DataNode 节点的哪个位置的元数据信息metadata上是由 NameNode 节点决定的。随着存储文件的增多 NameNode 节点上存储的信息也会越来越多。因...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

一个文件存储在哪个 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 工作机制


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

;原文链接:https://blog.csdn.net/qq_45069279/article/details/114527428

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 太强了, SecondaryNameNode 的工作流

    太强了, SecondaryNameNode 的工作流

  • 云原生势不可挡,华为云GaussDB加速企

    云原生势不可挡,华为云GaussDB加速企

  • 架构师成长记_第四周_18_Keepalived 配

    架构师成长记_第四周_18_Keepalived 配

  • 达梦数据库适配:DM8+SpringBoot+HiKar

    达梦数据库适配:DM8+SpringBoot+HiKar

腾讯云代理商
海外云服务器