hadoop--HDFS_NameNode和SecondaryNameNode工作机制
目录
- NN和2NN工作机制
- 第一阶段
- 第二阶段
- Fsimage和Edits解析
- Fsimage和Edits概念
- oiv查看Fsimage文件
- oev查看Edits文件
- CheckPoint时间设置
NN和2NN工作机制
NameNode中的元数据是存储在哪里?
元数据存在镜像文件Fsimage和编辑日志Edist文件中。在Secondary NameNode节点中,会定期进行Fsimage和Edits的拷贝与合并,保证元数据的更新。
1.假设存储在NameNode节点的磁盘中,因为要经常进行随机访问和响应客户请求,看起来效率过低;那应该是在内存中;
2.假设只存放在内存中,一旦断电,元数据丢失,整个集群便无法工作;
3.因此应该是在存在磁盘中备份元数据的Fsimage中
;但当内存中的元数据更新时,如果同时更新Fsiamge,就会导致效率过低,但如果不更新,就会产生一致性问题,一旦NameNode节点断电,就会产生数据丢失;
4.所以还要引入Edits文件(只进行追加操作,效率高)
,每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到Edits中。
这样,当NameNode节点断电时,可以通过Fsimage和Edits的合并,合成元数据。
5.但如果长时间添加数据到Edits种,会导致该文件数据过大,效率降低,一旦断电,恢复元数据需要的时间过长。
所以,需要定期进行Fsimage和Edits的合并
,如果此操作由NameNode节点完成,效率过低;所有,再次引入一个新的节点Secondary NameNode,专门用于Fsimage和Edits的合并。
第一阶段
1.第一次启动NameNode格式化后,创建Fsimage和Edits文件;
若非第一次启动,直接加载编辑日志Edits和镜像文件Fsimage到内存;
2.客户端对元数据进行增删改的请求;
3.NameNode记录操作日志,更新滚动日志;
4.NameNode在内存中对元数据进行增删改。
第二阶段
1.Secondary NameNode询问NameNode是否需要CheckPoint(定时1hr);
2.Secondary NameNode请求执行CheckPoint (1min查看一次nn/ 磁盘已满);
3.NameNode滚动正在写的Edits日志;生成新的edits_inprogress_002, 将原来的名称修改为edits_001;
4.将滚动前的编辑日志edits_001和镜像文件fsimage拷贝到Secondary NameNode;
5.Secondary NameNode加载编辑日志edits_001和镜像文件fsimage到内存,并合并;
6.生成新的镜像文件fsimage.chkpoint;
7.拷贝fsimage.chkpoint到NameNode;
8.NameNode将fsimage.chkpoint重新命名成fsimage(覆盖)。
tips:
1.NameNode和Secondary NameNode的唯一区别:NameNode中记录了最新的edits_inprogress_002操作;
2.最新的元数据 = fsimage + edits_inprogress_002,每次启动NameNode的时候,都会加载一次fsimage + edits_inprogress_002,保证内存中的元数据是最新的。
Fsimage和Edits解析
Fsimage和Edits概念
NameNode被格式化之后,将在/opt/module/hadoop-3.2.2/data/dfs/name/current目录下产生如下文件:
[xiaobai@hadoop102 current]$ pwd
/opt/module/hadoop-3.2.2/data/dfs/name/current
1.Fsimage文件:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息;
2.Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits文件中;
3.seen_exid文件保存的是一个数字,就是最后一个edits_的数字(最新的edits文件);
4.每次NameNode启动的时候都会将Fsimage文件读入内存,家在Edits里面的更新操作,保证内存中的元数据信息是最新的、同步的,可以看成NameNode启动的时候就将Fsimage和Edits文件进行了合并。
oiv查看Fsimage文件
1.查看oiv和oev命令:
oiv: 查看镜像文件;
oev: 查看Edits文件;
[xiaobai@hadoop102 current]$ hdfs
oev apply the offline edits viewer to an edits file
oiv apply the offline fsimage viewer to an fsimage
2.基本语法:
hdfs oiv -p 文件类型 -i 镜像文件 -o 转换后文件输出路径
3.案例
[xiaobai@hadoop102 current]$ hdfs oiv -p XML -i fsimage_0000000000000003207 -o /opt/software/fsimage.xml
2021-09-02 22:43:53,417 INFO offlineImageViewer.FSImageHandler: Loading 5 strings
2021-09-02 22:43:53,517 INFO namenode.FSDirectory: GLOBAL serial map: bits=29 maxEntries=536870911
2021-09-02 22:43:53,518 INFO namenode.FSDirectory: USER serial map: bits=24 maxEntries=16777215
2021-09-02 22:43:53,518 INFO namenode.FSDirectory: GROUP serial map: bits=24 maxEntries=16777215
2021-09-02 22:43:53,518 INFO namenode.FSDirectory: XATTR serial map: bits=24 maxEntries=16777215
将显示的xml文件内容拷贝到/opt/software/目录下创建的fsimage.xml文件中
oev查看Edits文件
1.基本语法
hdfs oev -p 文件类型 -i 编辑日志 -o 转换后文件输出路径
2.案例
[xiaobai@hadoop102 current]$ hdfs oev -p XML -i edits_inprogress_0000000000000003208 -o /opt/software/edits.xml
问:NameNode如何确定下次开机启动的时候合并哪些Edits?
合并数字最大的,时间戳最晚的。
CheckPoint时间设置
1.通常情况下,Secondary NameNode每隔1hr执行一次;
2.1min检查一次操作次数,当操作次数达到1百万次时,Secondary NameNode执行一次。
tips: 可在hdfs-default.xml中查看。
hadoop--HDFS_NameNode和SecondaryNameNode工作机制相关推荐
- Hadoop之NameNode和SecondaryNameNode工作机制详解
Hadoop之NameNode和SecondaryNameNode工作机制详解 NN和2NN工作机制 NN和2NN工作机制详解 Fsimage和Edits解析 checkpoint时间设置 1. NN ...
- Hadoop框架:NameNode工作机制详解
本文源码:GitHub·点这里 || GitEE·点这里 一.存储机制 1.基础描述 NameNode运行时元数据需要存放在内存中,同时在磁盘中备份元数据的fsImage,当元数据有更新或者添加元数据 ...
- Hadoop框架:DataNode工作机制详解
本文源码:GitHub·点这里 || GitEE·点这里 一.工作机制 1.基础描述 DataNode上数据块以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是数据块元数据包括长度.校验.时 ...
- HDFS的Secondarynamenode工作机制
HDFS 的元信息和 SecondaryNameNode 当 Hadoop 的集群当中, 只有一个 NameNode 的时候, 所有的元数据信息都保存在了 FsImage 与 Eidts 文件当中, ...
- 图解Hadoop hdfs的基本工作机制及相关概念
- NameNode和SecondaryNameNode工作机制
- Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制
目录 前言 1. Namenode元数据管理 1.1 元数据是什么 1.2 元数据管理概述 1.2.1 内存元数据 1.2.2 磁盘元数据 1.2.2.1 fsimage内存镜像文件 1.2.2.2 ...
- 图文详解 HDFS 的工作机制及其原理
大家好,我是大D. 今天开始给大家分享关于大数据入门技术栈--Hadoop的学习内容. 初识 Hadoop 为了解决大数据中海量数据的存储与计算问题,Hadoop 提供了一套分布式系统基础架构,核心内 ...
- 大数据之-Hadoop3.x_Hadoop之HDFS_DataNode的工作机制_原理---大数据之hadoop3.x工作笔记0077
然后我们再来看一下hadoop中,datanode的工作机制. 1.datanode1,比如启动的时候,它会向namenode进行注册,把自己的信息,比如我存了哪些block块信息, 块中存了块数据, ...
最新文章
- 敏捷软件开发(c#版)文摘
- 8大趋势已现,未来传感器将彻底改变你的生活!
- 一次哔哩哔哩面试经历,真香!
- python中的装饰器有哪些-python 装饰器以及开发中常用的例子
- Win8Metro(C#)数字图像处理--2.12Sobel边缘检测
- MVC 支持同名路由,不同命名空间
- I盘提示位置不可用数据怎样找到
- vba打开txt文件_VBA基础入门(34)读取txt文本文件
- 商汤科技、阿里巴巴及香港科技园联手成立 AI 实验室
- Nodejs实现一个http反向代理
- CSDN的手机APP可以写博客了
- 知识图谱构建流程与实现技术浅谈
- 目前颜值最高的开源BI工具-Superset
- Oracle12.2c统一审计(unified auditing)六问
- Vue 开始时间与结束时间比较验证
- Python实现BP神经网络ANN单隐层回归模型项目实战
- Linux判断服务进程存在,存在则重启,不存在则启动
- 考研 计算机组成原理大纲,2020计算机组成原理考研大纲解析
- DDD学习资料(持续更新)
- 项目管理信息系统效益分析报告
热门文章
- 496. 下一个更大元素 I/503. 下一个更大元素 II/739. 每日温度
- Java环境配置(linux安装jdk8)
- MySQL给新建用户并赋予权限
- 生成证书密钥RequestsDependencyWarning:Old version of cryptography ([1, 2, 3]) may cause slowdown.
- 线性表之顺序存储结构相关算法学习
- 对HashMap对象的键值对内容进行排序
- 05 Python字符串的通用操作
- express与express-art-template两者相结合使用方法
- python第八题 查找敏感单词
- [游戏开发-学习笔记]菜鸟慢慢飞(14)- ScrollView刷新