目录

  • 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工作机制相关推荐

  1. Hadoop之NameNode和SecondaryNameNode工作机制详解

    Hadoop之NameNode和SecondaryNameNode工作机制详解 NN和2NN工作机制 NN和2NN工作机制详解 Fsimage和Edits解析 checkpoint时间设置 1. NN ...

  2. Hadoop框架:NameNode工作机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.存储机制 1.基础描述 NameNode运行时元数据需要存放在内存中,同时在磁盘中备份元数据的fsImage,当元数据有更新或者添加元数据 ...

  3. Hadoop框架:DataNode工作机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.工作机制 1.基础描述 DataNode上数据块以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是数据块元数据包括长度.校验.时 ...

  4. HDFS的Secondarynamenode工作机制

    HDFS 的元信息和 SecondaryNameNode 当 Hadoop 的集群当中, 只有一个 NameNode 的时候, 所有的元数据信息都保存在了 FsImage 与 Eidts 文件当中, ...

  5. 图解Hadoop hdfs的基本工作机制及相关概念

  6. NameNode和SecondaryNameNode工作机制

  7. Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制

    目录 前言 1. Namenode元数据管理 1.1 元数据是什么 1.2 元数据管理概述 1.2.1 内存元数据 1.2.2 磁盘元数据 1.2.2.1 fsimage内存镜像文件 1.2.2.2 ...

  8. 图文详解 HDFS 的工作机制及其原理

    大家好,我是大D. 今天开始给大家分享关于大数据入门技术栈--Hadoop的学习内容. 初识 Hadoop 为了解决大数据中海量数据的存储与计算问题,Hadoop 提供了一套分布式系统基础架构,核心内 ...

  9. 大数据之-Hadoop3.x_Hadoop之HDFS_DataNode的工作机制_原理---大数据之hadoop3.x工作笔记0077

    然后我们再来看一下hadoop中,datanode的工作机制. 1.datanode1,比如启动的时候,它会向namenode进行注册,把自己的信息,比如我存了哪些block块信息, 块中存了块数据, ...

最新文章

  1. 敏捷软件开发(c#版)文摘
  2. 8大趋势已现,未来传感器将彻底改变你的生活!
  3. 一次哔哩哔哩面试经历,真香!
  4. python中的装饰器有哪些-python 装饰器以及开发中常用的例子
  5. Win8Metro(C#)数字图像处理--2.12Sobel边缘检测
  6. MVC 支持同名路由,不同命名空间
  7. I盘提示位置不可用数据怎样找到
  8. vba打开txt文件_VBA基础入门(34)读取txt文本文件
  9. 商汤科技、阿里巴巴及香港科技园联手成立 AI 实验室
  10. Nodejs实现一个http反向代理
  11. CSDN的手机APP可以写博客了
  12. 知识图谱构建流程与实现技术浅谈
  13. 目前颜值最高的开源BI工具-Superset
  14. Oracle12.2c统一审计(unified auditing)六问
  15. Vue 开始时间与结束时间比较验证
  16. Python实现BP神经网络ANN单隐层回归模型项目实战
  17. Linux判断服务进程存在,存在则重启,不存在则启动
  18. 考研 计算机组成原理大纲,2020计算机组成原理考研大纲解析
  19. DDD学习资料(持续更新)
  20. 项目管理信息系统效益分析报告

热门文章

  1. 496. 下一个更大元素 I/503. 下一个更大元素 II/739. 每日温度
  2. Java环境配置(linux安装jdk8)
  3. MySQL给新建用户并赋予权限
  4. 生成证书密钥RequestsDependencyWarning:Old version of cryptography ([1, 2, 3]) may cause slowdown.
  5. 线性表之顺序存储结构相关算法学习
  6. 对HashMap对象的键值对内容进行排序
  7. 05 Python字符串的通用操作
  8. express与express-art-template两者相结合使用方法
  9. python第八题 查找敏感单词
  10. [游戏开发-学习笔记]菜鸟慢慢飞(14)- ScrollView刷新