Hadoop3:HDFS中NameNode和SecondaryNameNode的工作机制(较复杂)

一、HDFS存储数据的机制简介

HDFS存储元数据(meta data)的时候
结果,记录在fsImage文件里
过程,记录在Edits文件里

同时fsImage+Edits=最终结果,这个最终结果(fsImage+Edits)会保存一份在内存中,为了提升性能
大家都知道,内存计算是最快的!

就有点像RedisRDB和AOF持久化

RDB是将某个时间点上Redis中的数据以快照的形式保存在硬盘中,它是以完整的数据角度进行持久化;
AOF是通过记录每一个写操作并追加到文件中进行持久化,它是以日志的形式记录完整的写入操作。

问题来了,我们在启动Hadoop的时候,会把结果加载到内存中,用于后面的计算。
Edits来记录操作过程,那么,在关停服务的时候,合并Edits结果到fsImage中,
消耗的时间就非常多!!!
这样肯定不行。

这时候,就需要SecondaryNameNode来帮忙处理,当Edits达到一定界限时,就进行一次fsImage合并

二、服务器查看

102上查看NameNode文件情况
在这里插入图片描述
104上查看SecondaryNameNode文件情况
在这里插入图片描述
对比两者区别,会发现,NN节点比2NN节点多了一个edits_inprogress_xxxxxxx文件。

三、NameNode和SecondaryNameNode的工作机制

1、工作流程图

在这里插入图片描述

2、流程讲解

2.1、NameNode工作时机

1、第一次启动NameNode格式化后,创建FsimageEdits 文件。如果不是第一次启动,直接加载已有的FsimageEdits到内存。
2、客户端发起对元数据进行增删改的请求。
3、NameNode记录操作日志,更新edits_inprogress_xxxxxxx文件。
4、NameNode更新内存中的元数据。

2.3、SecondaryNameNode工作时机

1、SecondaryNameNode发起询问请求,是否需要CheckPointNameNode直接返回是否CheckPoint的需求。
这个请求触发条件有两个
触发时间到了,默认是60min一次,进行一次CheckPoint
edits操作次数达到100万次时,进行一次CheckPoint。(这个是1分钟2NN去检查一次NN的edits
2、如果,返回需要执行CheckPoint,则SecondaryNameNode在次请求执行CheckPoint
3、NameNode滚动正在编辑的edits_inprogress_xxxxxxx文件,更新为edits_001,并生成一个新的edits_inprogress_002文件。
4、SecondaryNameNode拷贝edits_001Fsimage到自己所在节点机器上。
5、SecondaryNameNode加载edits_001Fsimage到内存,进行合并操作,计算出最终结果。
6、SecondaryNameNode上,生成新的镜像文件fsimage.chkpoint文件。
7、拷贝fsimage.chkpoint文件到NameNode节点上。
8、NameNodefsimage.chkpoint重新命名为fsimage文件,覆盖原有的fsimage文件。

四、总结

通过上面的流程讲解,我们可以知道,SecondaryNameNode上永远没有edits_inprogress_xxxxxxx文件,所以,当NameNode宕机时,SecondaryNameNode是无法代替NameNode进行工作的。
只能辅助帮助恢复元数据,但是可以修复大量的元数据

补充:
1、CheckPoint检查时间配置
hdfs-default.xml文件,默认是3600s一次。

<property><name>dfs.namenode.checkpoint.period</name><value>3600s</value><description>The number of seconds between two periodic checkpoints.Support multiple time unit suffix(case insensitive), as describedin dfs.heartbeat.interval.</description>
</property>

2、2NN检查edits中的操作次数
hdfs-default.xml文件

<property><name>dfs.namenode.checkpoint.txns</name><value>1000000</value><description>The Secondary NameNode or CheckpointNode will create a checkpointof the namespace every 'dfs.namenode.checkpoint.txns' transactions, regardlessof whether 'dfs.namenode.checkpoint.period' has expired.</description>
</property><property><name>dfs.namenode.checkpoint.check.period</name><value>60s</value><description>The SecondaryNameNode and CheckpointNode will poll the NameNodeevery 'dfs.namenode.checkpoint.check.period' seconds to query the numberof uncheckpointed transactions. Support multiple time unit suffix(case insensitive),as described in dfs.heartbeat.interval.</description>
</property>

注意:
另外,这个作为了解知识,因为在实际的企业中,保证集群的高可用,不用2NN来实现。一句话,时机生产中,2NN不适用!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法】排序——加更

补充1个排序&#xff1a;希尔排序 思路&#xff1a;首先定义一个gap,从第0个数开始&#xff0c;每隔一个gap取出一个数&#xff0c;将取出来的数进行比较&#xff0c;方法类似插入排序。第二轮从第二个数开始&#xff0c;每隔一个gap取出一个数再进行插入排序。四轮就可以取完…

Vue的应届毕业生财务管理系统-计算机毕业设计源码82886

摘 要 随着互联网大趋势的到来&#xff0c;社会的方方面面&#xff0c;各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去&#xff0c;而其中最好的方式就是建立网络管理系统&#xff0c;并对其进行信息管理。由于现在网络的发达&#xff0c;应届毕业生财务…

面试官:讲讲为什么SpringBoot的 jar 可以直接运行?

Spring Boot 是一个用于简化 Spring 应用程序开发的框架&#xff0c;它通过约定优于配置和大量的自动化配置&#xff0c;使得开发者可以更轻松地创建和部署 Spring 应用程序。一个特别引人注目的特性是 Spring Boot 应用可以打包成一个可执行的 JAR 文件&#xff0c;并且可以直…

力扣:236.二叉树的最近公共祖先(C++)

文章目录 1. 题目描述2. 题目解析2.1 思路一2.1 思路二 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 题目来源: 力扣…二叉树的最近公共祖先 1. 题目描述 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表…

Execel 数据分析-如何使用筛选-图表-透视图-处理多变量数据集

如果你的数据有很多个变量&#xff0c;比如横轴X有a,b,c,d等几个变量&#xff0c;Y轴也有个变量&#xff0c;那么这时候就用得到。 比如下面的例子&#xff0c;测试GPU的kernel吞吐量&#xff0c;其中stream cnt&#xff0c;grid dim&#xff0c;block dim 产生后面几个变量&am…

Java对象不再使用时,为什么要赋值为 null ?

在Java中&#xff0c;将不再使用的对象赋值为null的目的主要是为了帮助垃圾收集器&#xff08;更快地释放内存。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&…

C语言指针详解(3)

前言&#xff1a; 强化数组指针的理解&#xff1a; 在C语言指针详解&#xff08;2&#xff09;-CSDN博客中我们模拟实现了一个二维数组&#xff0c;可能大家对其中的原理还有些模糊&#xff0c;这一章开始之前先梳理一遍。 一维数组的模拟实现&#xff1a; 再剖析二维数组之前…

Java整合EasyExcel实战——2 导出复杂表头

详情代码 实体类 Data public class ComplexHeadData {ExcelProperty({"主标题", "字符串标题"})private String string;ExcelProperty({"主标题", "日期标题"})private Date date;ExcelProperty({"主标题", "数字标…

AI日报|阿里8亿美元购入月之暗面36%股份,Meta首席杨立昆建议不要研究大模型...

文章推荐 阿里通义降价&#xff0c;百度文心免费&#xff0c;一图对比谁是最具性价比大模型&#xff1f; 阿里投资Kimi AI开发商月之暗面&#xff1a;8亿美元购入约36%股权 阿里巴巴在2024财年向AI初创企业月之暗面投资约8亿美元&#xff0c;购入其约36%股权。 月之暗面成立…

这13个前端库,帮我在工作中赢得了不少摸鱼时间

前言 平时开发的过程中&#xff0c;常常会使用到一些第三方库来提高开发效率&#xff0c;我总结了自己工作这么久以来经常用到的 13 个库&#xff0c;希望对大家有帮助&#xff5e; antd 全称应该是Ant Design&#xff0c;这是一个 React 的组件库&#xff0c;旨在提供一套常…

小小“创新券” 有大担当

科技创新券&#xff0c;就是企业在进行项目研发过程中&#xff0c;政府为企业免费发放给企业的一种“权益凭证”&#xff0c;它可以帮助企业向高校、科研院所、科技服务机构等机构购买服务&#xff0c;将大型设备和其他科技创新资源充分利用起来&#xff0c;并通过产研合作等方…

DAOS: A Scale-Out High Performance Storage Stack for Storage Class Memory——论文泛读

Supercomputing Frontiers 2020 Paper 分布式元数据论文阅读笔记整理 问题 企业、政府和学术界出现的数据密集型应用程序将现有的I/O模型扩展到了极限。现代I/O工作负载的特点是元数据与未对齐和碎片化数据的结合比例越来越高。传统的存储堆栈为这些工作负载提供了较差的性能…

✅什么是最左前缀匹配?为什么要遵守?

在 MySQL 中&#xff0c;最左前缀匹配指的是在查询时利用索引的最左边部分进行匹配。当你执行查询时&#xff0c;如果查询条件涉及到组合索引的前几个列&#xff0c;MySQL 就能够利用该复合索引来进行匹配。 组合索引即由多个字段组成的联合索引&#xff0c;比如 idx_col1_col2…

AIGC 003-Controlnet升级你的SD让图像生成更加可控!

AIGC 003-Controlnet升级你的SD让图像生成更加可控&#xff01; 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 ControlNet 论文 (Adding Conditional Control to Text-to-Image Diffusion Models) 提出了一种名为 ControlNet 的神经网络结构&#xff0c;旨在为大型文本到图…

StackExchange.Redis跑起来,为什么这么溜?

StackExchange.Redis 是一个高性能的 Redis 客户端库&#xff0c;主要用于 .NET 环境下与 Redis 服务器进行通信&#xff0c;大名鼎鼎的stackoverflow 网站就使用它。它使用异步编程模型&#xff0c;能够高效处理大量请求。支持 Redis 的绝大部分功能&#xff0c;包括发布/订阅…

创意学习剪辑利器:一键添加动图水印,轻松提升视频专业度与创意新境界!

在数字化时代&#xff0c;视频已成为我们生活中不可或缺的一部分。无论是学习分享、工作展示还是生活记录&#xff0c;视频都以其直观、生动的形式&#xff0c;赢得了广大用户的喜爱。然而&#xff0c;如何在众多的视频中脱颖而出&#xff0c;展现出自己的专业度和创意&#xf…

[AI OpenAI] OpenAI 安全更新

AI 首尔峰会中分享我们的实践 我们自豪地构建并发布了在能力和安全性方面都处于行业领先地位的模型。 超过一亿用户和数百万开发者依赖于我们安全团队的工作。我们将安全视为我们必须在多个时间范围内投资并取得成功的事项&#xff0c;从使今天的模型与我们未来预期的更具能力…

谷歌浏览器使用vue插件查看表单提交的数据

1.查看组件&#xff1a; 对应代码里主页面引用的组件名&#xff1a; 表单名称&#xff0c;对应组件里form表单名&#xff1a; 左边的层次结构&#xff1a; 右边层次结构&#xff1a;

Excel/WPS《超级处理器》同类项处理,合并同类项与拆分同类项目

在工作中处理表格数据&#xff0c;经常会遇到同类项处理的问题&#xff0c;合并同类项或者拆分同类项&#xff0c;接下来介绍使用超级处理器工具如何完成。 合并同类项 将同一列中的相同内容合并为一个单元格。 1&#xff09;用分隔符号隔开 将AB列表格&#xff0c;合并后为…

Spring中@Component注解

Component注解 在Spring框架中&#xff0c;Component是一个通用的注解&#xff0c;用于标识一个类作为Spring容器管理的组件。当Spring扫描到被Component注解的类时&#xff0c;会自动创建一个该类的实例并将其纳入Spring容器中管理。 使用方式 1、基本用法&#xff1a; Co…