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

news2024/11/15 14:06:35

一、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 described
    in 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 checkpoint
  of the namespace every 'dfs.namenode.checkpoint.txns' transactions, regardless
  of 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 NameNode
  every 'dfs.namenode.checkpoint.check.period' seconds to query the number
  of uncheckpointed transactions. Support multiple time unit suffix(case insensitive),
  as described in dfs.heartbeat.interval.
  </description>
</property>

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

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

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

相关文章

JVM 常见配置参数

JVM 配置常见参数 Java虚拟机的参数&#xff0c;在启动jar包的时候通过java 命令指定JVM参数 -options表示Java虚拟机的启动参数&#xff0c;class为带有main()函数的Java类&#xff0c;args表示传递给主函数main()的参数。 一、系统查看参数: -XX:PrintVMOptions可以在程序…

ES的安装以及配置+ik分词

环境&#xff1a;windows10、ES&#xff08;8.13.3&#xff09;、Kibana&#xff08;8.13.3&#xff09;、Logstash&#xff08;8.13.3&#xff09;、ik&#xff08;8.13.3&#xff09; 1.下载安装ES Download Elasticsearch | ElasticDownload Elasticsearch or the complet…

四元数学习总结(2)

导语&#xff1a;相比矩阵&#xff0c;用四元数处理3D旋转的优势是毋庸置疑的&#xff0c;但由于概念复杂&#xff0c;难于理解&#xff0c;一直令我摸不着头脑。最近学习更是发现在机器人、无人机、SLAM等先进领域&#xff0c;四元数被当成实数、整数这样的基础&#xff0c;所…

超简单白话文机器学习 - 支持向量机SVM(含算法讲解,公式全解,手写代码实现,调包实现)

1. 支持向量机SVM 支持向量机&#xff0c;因其英文名为support vector machine&#xff0c;故一般简称SVM&#xff0c;通俗来讲&#xff0c;它是一种二类分类模型&#xff0c;其基本模型定义为特征空间上的间隔最大的线性分类器&#xff0c;其学习策略便是间隔最大化&#xff…

学浪的缓存怎么导出来

学浪的缓存导出问题困扰着许多用户&#xff0c;备份和管理数据变得至关重要。在数字化时代&#xff0c;保护和利用数据是企业和个人不可或缺的需求。在这篇文章中&#xff0c;我们将深入探讨学浪缓存导出的方法&#xff0c;为您解决疑惑&#xff0c;让您轻松掌握数据的安全与便…

java:程序包javax. servLet不存在

一.原因 1.项目Tomcat 服务器依赖未导入 2.项目的 SDK 版本选择错误 二.解决方法 方案一&#xff1a; 1.选择项目结构选项 2.导入Tomcat依赖 把tomcat里面的【jsp-api.jar】和【servlet-api.jar】这两个包导入 方案二&#xff1a; 1.选择项目结构选项 2.选择自己的jdk版本…

海外短剧系统源码

随着互联网的普及和全球化的加速&#xff0c;海外短剧系统源码的开发成为了一个新兴的领域。海外短剧&#xff0c;即那些在海外市场流行的短视频剧集&#xff0c;以其短小精悍、节奏快速、内容多样的特点&#xff0c;迅速吸引了全球观众的注意。本文将探讨海外短剧系统源码的开…

反对加征关税,特斯拉上海厂传减产20% | 百能云芯

特斯拉公司首席执行官马斯克近日在公开场合表达了对美国计划对中国电动车加征关税的反对立场&#xff0c;强调特斯拉不支持任何扭曲市场的举措。据知情人士透露&#xff0c;特斯拉上海工厂正计划在今年第二季度至少削减Model Y车型的产量20%&#xff0c;以应对市场需求的变化。…

需求跟踪矩阵是什么?怎么创建?一文详解

一、什么是需求跟踪矩阵 对项目经理或产品经理来说&#xff0c;需求清单肯定不陌生&#xff0c;那什么是需求跟踪矩阵呢&#xff1f; 需求跟踪矩阵&#xff08;Requirement Track Matrix&#xff0c;简称RTM &#xff09;&#xff0c;是把产品需求从其来源连接到能满足需求的…

大模型应用之基于Langchain的测试用例生成

一 用例生成实践效果 在组内的日常工作安排中&#xff0c;持续优化测试技术、提高测试效率始终是重点任务。近期&#xff0c;我们在探索实践使用大模型生成测试用例&#xff0c;期望能够借助其强大的自然语言处理能力&#xff0c;自动化地生成更全面和高质量的测试用例。 当前…

MIC工作原理(驻极体麦克风)

1.驻极体麦克风声电转换原理 如图所示&#xff0c;驻极体麦克风属于电容式麦克风&#xff0c;背极板和振膜构成平板版电容器&#xff0c;背极板驻有一定量的电荷&#xff0c;背极板通过金属环连接到FET的栅极&#xff1b;振膜镀层金属&#xff0c;通过金属外壳连接到FET的S极&…

社区矫正程序管理端和小程序(支持人脸识别)

社区矫正作为我国刑事处罚执行方式中独特的种类&#xff0c;从2003年进行试点至今已有近20年的时间&#xff0c;在罪犯改造方面取得了突出成就&#xff0c;在法治国家建设过程中具有十分重要的意义。相较于监狱内服刑的执行方式&#xff0c;社区矫正更加侧重于对服刑人员进行教…

常见web安全漏洞

一、信息泄露 概念 信息泄露是由于Web服务器或应用程序没有正确处理一些特殊请求&#xff0c;泄露Web服务器的一些敏感信 息&#xff0c;如用户名、密码、源代码、服务器信息、配置信息等。 造成信息泄露主要的三个原因: ①Web服务器配置存在问题&#xff0c;导致一些系统…

最详细Linux提权总结(建议收藏)

1、内核漏洞脏牛提权 查看内核版本信息 uname -a 具体提权 1、信息收集配合kali提权 uname -a #查看内核版本信息 内核版本为3.2.78&#xff0c;那我们可以搜索该版本漏洞 searchsploit linux 3.2.78 找到几个可以使用的脏牛提权脚本&#xff0c;这里我使用的是40839.c脚…

锐捷网络与您相约第七届数字中国建设峰会 共话数字未来

第七届数字中国建设峰会将于5月24日至25日在福建福州举办,本届峰会是国家数据工作体系优化调整后首次举办的数字中国建设峰会,主题是“释放数据要素价值,发展新质生产力”。作为行业领先的ICT基础设施及解决方案提供商,锐捷网络与福建省电子信息集团、星网锐捷,围绕“发展新质生…

SpringBoot——发送HTML格式的邮件

目录 项目总结 新建一个SpringBoot项目 pom.xml application.properties配置文件 EmailService服务类 SpringbootMailHtmlApplicationTests测试类 项目总结 在SpringBoot项目中发送HTML格式的邮件的思路&#xff1a; 添加依赖&#xff1a;在项目中添加spring-boot-starte…

Android消息机制回顾(Handler、Looper、MessageQueue源码解析)

回顾&#xff1a; Android消息机制 Android消息机制主要指的是Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作机制。 介绍 通过Handler 消息机制来解决线程之间通信问题&#xff0c;或者用来切换线程。特别是在更新UI界面时&#xff0c;确保了线程间的数…

20232937文兆宇 2023-2024-2 《网络攻防实践》实践十一报告

20232937文兆宇 2023-2024-2 《网络攻防实践》实践十一报告 1.实践内容 木马是一种带有恶意性质的远程控制软件。木马一般分为客户端和服务器端&#xff0c;客户端是本地使用的各种命令的控制台&#xff0c;而服务器端则是要给别人运行&#xff0c;只有运行过服务器端的计算机…

工具:Visual Studio Code

一、VSCode生成exe 二、在vs中断点调试 如果没效果需要安装如下与unity相连接的插件 三、注释 1、代码注释 注释和取消都是都是同一个命令&#xff1a;选中代码&#xff0c;然后按住CtrlShift/ 2、方法或类注释 /// 四、导航 五、将变量注释展示到解释面板 1、直接显示 [Too…

YOLOv8: RuntimeError: DataLoader worker (pid(s) xxxxx) exited unexpectedly

遇到错误&#xff1a; 一、 raise RuntimeError(DataLoader worker (pid(s) {}) exited unexpectedly.format(pids_str)) RuntimeError: DataLoader worker (pid(s) 4252, 17184) exited unexpectedly二、OSError: [WinError 1455] 页面文件太小&#xff0c;无法完成操作。 处…