太强了, SecondaryNameNode 的工作流程
一个文件存储在哪个 DataNode 节点的哪个位置的元数据信息(metadata)上,是由 NameNode 节点决定的。随着存储文件的增多, NameNode 节点上存储的信息也会越来越多。因此,HDFS定义了一个 第二名称节点(SecondaryNameNode) ,用来及时更新这些metadata。
HDFS是一个分布式文件存储系统,文件分布式存储在多个 DataNode 节点上。
- 一、 SecondaryNameNode节点合并过程
- 二、 检查点
- 2.1 检查点合并的时间
- 2.2 检查点的作用
一、 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 检查点合并的时间
启动检查点进程由两个参数控制,触发检查点操作,只需达到以下任一条件:
- 每隔 60 分钟( 使用到参数 dfs.namenode.checkpoint.period );
- 当 edits 文件达到 100万条事务,默认值为 100万条 ( 使用到参数 dfs.namenode.checkpoint.txns )。
2.2 检查点的作用
检查点的作用 (即 合并 的作用),主要是为了 减少NameNode的启动时间 。
如果想了解 HDFS 的组成架构,可以看看这篇文章:一文了解 HDFS 及其组成架构 。当然,如果想看看 HDFS 的工作机制是怎样的,可以参考这篇文章:图文详解 HDFS 工作机制 。
如果文章对您有帮助,请点个赞,留给评论支持一下
太强了, SecondaryNameNode 的工作流程相关推荐
- 企业工作流程化重要吗?
企业工作流程化其实是非常非常重要的. 我们先搞清楚什么是企业工作流程化? 企业流程化,说简单点就是一种组织能力,就是把优秀个体的成功经验.成功的工作方法变成组织的一种能力. 华为任正非曾经说过一句话: ...
- 前端基于gulp后端基于freemarker的工作流程总结
前言 最近在做一个PC端的项目,由于项目需要兼容到IE8,所以从技术选型上采取了公司之前一直沿用的前端基于gulp后端基于freemarker的模式来进行开发. 那么gulp+freemarker这种 ...
- Elasticsearch基础1——搜索引擎发展史和工作流程、es/es-head/kibana的基础安装
文章目录 一.搜索引擎 1.1 搜索引擎的发展背景 1.2 Lucene和Elasticsearch 1.3 Solr和Elasticsearch对比 1.4 数据搜索方式 1.5 搜索引擎 1.5. ...
- RNA-seq工作流程:基因水平的探索性分析和差异表达
RNA-seq工作流程:基因水平的探索性分析和差异表达 迈克尔·爱1,西蒙·安德斯3,弗拉迪斯拉夫·金4和沃尔夫冈·胡贝尔4 1美国北卡罗莱纳州教堂山UNC-Chapel Hill生物统计学系 2美国 ...
- 上期所API头文件一、ThostFtdcUserApiStruct.h---API结构体的定义及工作流程(源代码6.3.19版)
结构体的定义及工作流程 一.API工作流程 1.1.MdApi 1.2.TraderApi 二. ThostFtdcUserApiStruct结构体的定义 三.源代码 一.API工作流程 1.1.Md ...
- 软件机器人引流办公室工作流程自动化的发展之路
今天的工厂比起30年前的工厂自动化程度是极大地提高了,有了流水线工业机器人和各种各样的实体机器人,都能够帮助我们更高效地完成工作.但在办公室里面,我们所做的事情,比起10年前.20年前.30年前,没有 ...
- travis ci_如何使用Travis CI和GitHub进行Web开发工作流程
travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...
- 测试工程师工作流程概论
作者:未知 文章来源:网络 测试工程师的工作流程,与公司的整体工作流程,项目的测试要求等因素相关.本文主要讨论测试工程师的一般工作流程. 做好测试准备 1)明确测试任务的范围 测试文档通常包括测 ...
- 小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...
本文基于 webpack 4 和 babel 7,Mac OS,VS Code 小程序开发现状: 小程序开发者工具不好用,官方对 npm 的支持有限,缺少对 webpack, babel 等前端常用工 ...
最新文章
- linux devm_request_irq 引发BUG sleeping function called from invalid context问题
- 网页禁止右键代码各类代码大全
- 自定义 Spring Boot Starter
- 如何选择行业,让选择大于努力
- 孩子数学成绩不好怎么办_我孩子数学成绩不好,怎么办
- 极客先锋 如何生成git的公钥和私钥
- k3 xp服务器系统,如何在英文XP环境下安装k3系统.doc
- 常见非功能性需求的描述案例
- C++和C#结构体转换的问题
- Win10 键盘输入法消失后如何恢复
- 统计相关系数——Kendall Rank(肯德尔等级)相关系数
- QC4+充电协议_原来那么多手机支持QC4+快充,小米最多,只是之前用错了充电头...
- java斗地主socket_纯JAVA写的socket局域网斗地主游戏
- sql2000 指定的服务器不存在,SQL Server 2000服务无法启动,提示“系统找不到指定的文件”解决方法及sp4安装不上...
- HyperLynx(二十九)高速串行总线仿真(一)
- 冰点还原精灵7.0密码忘记的解决方案
- 5.2 创建个人中心页面-前端部分
- Learning Skeletal Articulations with Neural Blend Shapes(使用神经混合形状学习骨骼关节)SIGGRAPH 2021顶刊解析
- 今天面完了聚成网络的php研发,面经一枚,为自己攒人品。
- IEEE-Access 期刊投稿和回信再投稿步骤
热门文章
- While True和Try except
- 程序人生:月薪12K,高学历全职宝妈被骗6000元后幡然醒悟,转行测试逆风翻盘...
- 取消IDEA默认打开项目设置
- 锐龙r7 6800h什么水平 锐龙r76800h参数 r7 6800h属于什么档次
- Unity接入北斗探针(基于UnityPlayerActivity)☀️一、效果展示与材料准备
- 从就业看高考工科志愿填报——芯片行业篇
- python公众号文章_python采集微信公众号文章
- 谷粒商城-分布式高级篇【业务编写】
- “一文读懂”系列:无处不在的WMS
- Android之小小图片加工厂