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 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不适用!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5月30日在线研讨会 | 面向智能网联汽车的产教融合解决方案

随着智能网联汽车技术的快速发展&#xff0c;产业对高素质技术技能人才的需求日益增长。为了促进智能网联汽车行业的健康发展&#xff0c;推动教育链、人才链与产业链、创新链的深度融合&#xff0c;经纬恒润推出产教融合相关方案&#xff0c;旨在通过促进教育链与产业链的深度…

Cookie 和 Session概念及相关API

目录 1.Cookie概念 2.理解会话机制 (Session) 3.相关API 3.1HttpServletRequest 3.2HttpServletResponse 3.3HttpSession 3.4Cookie 4.代码示例: 实现用户登陆 1.Cookie概念 Cookie 是存储在用户本地终端&#xff08;如计算机、手机等&#xff09;上的数据片段。 它…

5款AI工具,PS插件的智能升级

在Photoshop插件的世界里&#xff0c;创新和效率是永远的主题。随着AI技术的融入&#xff0c;传统的PS插件正在经历一场革命。本文将介绍五款结合了人工智能技术的PS插件&#xff0c;它们不仅提升了设计工作的效率&#xff0c;还拓展了创意的边界。 StartAI —— 智能设计的未来…

【包公断案】http请求神秘失踪案

案件名称&#xff1a;http请求离奇失踪案 案发地点&#xff1a;公司内部机器 案发时间&#xff1a;早上9点到9点30分 案发背景&#xff1a;两地三中心&#xff0c;双机房只单边出现该问题 案发事件&#xff1a;服务A的某些api请求离奇失踪&#xff0c;超时无响应&#xff0c;微…

【Qt】如何优雅的进行界面布局

文章目录 1 :peach:写在前面:peach:2 :peach:垂直布局:peach:3 :peach:水平布局:peach:4 :peach:网格布局:peach:5 :peach:表单布局:peach: 1 &#x1f351;写在前面&#x1f351; 之前使⽤ Qt 在界⾯上创建的控件, 都是通过 “绝对定位” 的⽅式来设定的。也就是每个控件所在…

数字信号处理:matlab解差分方程

1. 验证全响应 %验证全响应零状态响应零输入响应 %y(n)4y(n-1)x(n),其中x(n)δ(n),y(-1)2.clc;%清屏 clear all;%清除所有变量的值 b[1]; a[1,-4]; ys[2]; xs[0];%没有初始值&#xff0c;就是0 xn[1, zeros(1,4)];%输入序列&#xff0c;假设长度是5&#xff0c;则输出长度也是…

WDW-100G 高温拉力试验机 技术方案书

一、整机外观图&#xff1a; 二、项目简介&#xff1a; 微机控制高温拉力试验机是电子技术与机械传动相结合的新型材料试验机&#xff0c;它具有宽广准确的加载速度和测力范围&#xff0c;对载荷、变形、位移的测量和控制有较高的精度和灵敏度&#xff0c;还可以进行等速加载、…

sharded jedis pipelined 执行后 数据并未存入redis

前言 因为历史原因&#xff0c;在某个同步菜单操作的方法中先清除缓存&#xff0c;然后在初始化缓存。本来很正常的逻辑&#xff0c;但是这个清除是db查询获取所有的菜单 然后循环一条条删除 然后在db查询有效的菜单操作 在循环一条条插进去 经统计这个菜单操作大概有个7千个 …

【区块链】fisco网络运维之添加节点黑名单

基于已完成的区块链系统与管理平台搭建工作&#xff0c;开展区块链节点的黑名单工作&#xff0c;具体操作如下 以node3为例子 1查看node0节点的连接状态日志&#xff08;现有4个节点连接&#xff09; 注意&#xff1a;如果查询不到连接状态&#xff0c;修改node0的配置文件中…

QT5.15.2及以上版本安装

更新时间&#xff1a;2024-05-20 安装qt5.15以上版本 系统&#xff1a;ubuntu20.04.06 本文安装&#xff1a;linux-5.15.2 下载安装 # 安装编译套件g sudo apt-get install build-essential #安装OpenGL sudo apt-get install libgl1-mesa-dev# 下载qt安装器 https://downl…

每天五分钟深度学习框架PyTorch:创建具有特殊值的tensor张量

本文重点 tensor张量是一个多维数组,本节课程我们将学习一些pytorch中已经封装好的方法,使用这些方法我们可以快速创建出具有特殊意义的tensor张量。 创建一个值为空的张量 import torch import numpy as np a=torch.empty(1) print(a) print(a.dim()) print(s.shape) 如图…

supOS NEO科技普惠!永久免费!亿元补贴

数字化转型正在全球蓬勃发展&#xff0c;工业操作系统进入大规模推广期&#xff01; 如果您正在被预算不足、技术团队不强、数字化投入产出比等问题困扰&#xff0c;supOS NEO是您最好的选择。 “让supOS走进万千工厂、千行百业&#xff01;让全世界每个工厂都能用得上supOS&am…

.net core web项目部署IIS报错:HTTP 错误 413.1 - Request Entity Too Large

HTTP 错误 413.1 - Request Entity Too Large 解决办法 这个报错的原因是因为IIS配置问题&#xff0c;IIS最大默认配置只有30M&#xff0c;超过30M就会报错 解决办法 在程序中配置能接收最大字节大小 //配置请求头中能最大接收多少数据 //builder.WebHost.UseKestrel(option…

VS2022通过C++网络库Boost.asio搭建一个简单TCP异步服务器和客户端

基本介绍 上一篇博客我们介绍了通过Boost.asio搭建一个TCP同步服务器和客户端&#xff0c;这次我们再通过asio搭建一个异步通信的服务器和客户端系统&#xff0c;由于这是一个简单异步服务器&#xff0c;所以我们的异步特指异步服务器而不是异步客户端&#xff0c;同步服务器在…

c语言:利用随机函数产生20个[120, 834] 之间互不相等的随机数, 并利用选择排序法将其从小到大排序后输出(每行输出5个)

利用随机函数产生20个[120, 834] 之间互不相等的随机数&#xff0c; 并利用选择排序法将其从小到大排序后输出&#xff08;每行输出5个&#xff09; 代码如下&#xff1a; #include <stdio.h> #include <time.h> #include <stdlib.h> int shenchen(int a[…

全栈实现发送验证码注册账号 全栈开发之路——全栈篇(3)

全栈开发一条龙——前端篇 第一篇&#xff1a;框架确定、ide设置与项目创建 第二篇&#xff1a;介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇&#xff1a;setup语法&#xff0c;设置响应式数据。 第四篇&#xff1a;数据绑定、计算属性和watch监视 第五篇 : 组件…

分布式音乐播放器适配了Stage模型

OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;应用开发自API 8及其更早版本一直使用的是FA模型进行开发。FA模型是Feature Ability的缩写&#xff0c;它和PA&#xff08;Particle Ability&#xff09;两种类型是过往长期推广的术语&#xff0c;深入人心…

6.2 else if语句

本节必须掌握的知识点&#xff1a; 示例代码二十 代码分析 汇编解析 ■if语句表达形式3 if(表达式1) statement1 else if(表达式2) statement2 else if(表达式3) statement3 …… else statementN 解析&#xff1a; 如果表达式1非0&#xff0c;则执行statement1&#…

Java基础22(JSON解析 注解)

目录 一、JSON解析 1. JSON语法 2. JSON的用途 3. Java解析JSON 4. 使用Fastjson 4.1 Fastjson 的优点 4.2 Fastjson 导包 4.3 Fastjson的主要对象 4.4 常用方法 将Java对象 "序列化"&#xff08;转换&#xff09; 为JSON字符串&#xff1a; 将JSON字符串…

go语言中的一个特别的语法 //go:embed 可将将静态文件内容读取到string, []byte和 embed.FS 变量并直接打包到exe包中

go语言中的一个特别的语法 //go:embed 看上去像是注释&#xff0c;实则是golang中的一个内置的语法&#xff0c;而且是仅在你的go代码编译时生效的语法&#xff0c; 借助他我们可以将我们的静态资源文件读取到FS直接打包到我们的exe执行文件中。 同时他还支持文件的模式匹配…