一个文件存储在哪个 DataNode 节点的哪个位置的元数据信息(metadata)上,是由 NameNode 节点决定的。随着存储文件的增多, NameNode 节点上存储的信息也会越来越多。因此,HDFS定义了一个 第二名称节点(SecondaryNameNode) ,用来及时更新这些metadata。
HDFS是一个分布式文件存储系统,文件分布式存储在多个 DataNode 节点上。
fsimage 与 edits 文件合并的过程如下:
⑴ SecondaryNameNode 节点会定期与 NameNode 节点通信,请求其停止使用 edits 文件,暂时将新的更新操作写到一个新的 edits.new 文件上(这个操作是瞬间完成的)。
简述:将 HDFS 更新记录写入一个新的文件—— edits.new 。
简述:将 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 (这个过程称为 检查点 )。
启动检查点进程由两个参数控制,触发检查点操作,只需达到以下任一条件:
检查点的作用 (即 合并 的作用),主要是为了 减少NameNode的启动时间 。
如果想了解 HDFS 的组成架构,可以看看这篇文章:一文了解 HDFS 及其组成架构 。当然,如果想看看 HDFS 的工作机制是怎样的,可以参考这篇文章:图文详解 HDFS 工作机制 。
如果文章对您有帮助,请点个赞,留给评论支持一下😊,若有疑问可以私信留言😉。如果能给个三连(点赞、收藏、关注 )就最好啦😁。
关于我的SWFObject V1.5的使用过程,以 上篇 中的介绍暂时告一段落了,下面我将...
Mysql数据库五——mysql事务及引擎 一、事务 1、事务的概念 2、事务的ACID特点 ...
例如: 我们在百度中搜索 尊托云数,则网址后面的参数就是 http://www.baidu.com/...
发现每个编辑实例都可以加载不同的css样式表,而且其样式不继承 页面的css。 于...
接着昨天的,如果forEach中的items类型是map或者Collection类型的,怎样使用增强...
如果你很在意你的终端的外观的话,一个跨 shell 的提示符可以让你轻松地定制和配...
我之前写过一个简易版的自动+手动轮播图: 简易轮播图 但是这个轮播图在切换的时...
Asp 解析 XML并分页显示,示例源码如下: 复制代码 代码如下: !DOCTYPE html PUB...
本文实例为大家分享了js实现电灯开关效果的具体代码,供大家参考,具体内容如下 ...
主要目的 a. 掌握获取 GridPanel 当前行的各个字段值的方法 b. 掌握如何将前台数...