当前位置: 首页 > news >正文

hadoop中hdfs的fsimage文件与edits文件

hadoop中hdfs的fsimage文件与edits文件的作用

首先,我们抛出fsimage和edits文件的功能描述。

Fsimage文件: HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的

所有目录和文件inode的序列化信息。

Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操

作首先会被记录到Edits文件中。

其次,我们详细描述fsimage文件和edits文件在NameNode中所扮演的角色。

当NameNode首次启动时

  1. 格式化文件系统,方便生成fsimage镜像文件;

  2. 启动NameNode

  • 读取fsimage文件,将文件内容加载进内存

  • 等待DataNade注册与发送blockreport

  1. 启动DataNode:
  • 向NameNode注册
  • 发送block_report(block_report的全称为Full Block Report,即全量块汇报,它主要是讲DateNode中存储的所有block信息都汇报给NameNode)
  • 检查fsimage中记录的块的数量和block report中的块的总数是否相同

​ 4.当客户端对文件系统进行操作时(创建目录,上传文件,删除文件等):

  • 此时内存中已经有文件系统改变的信息,但是磁盘中没有文件系统改变的信息,此时会将这些改变信息写入edits文件中,edits文件中存储的是文件系统的元数据发生变更的信息。

当第二次启动NameNode时:

  1. 此时直接读取fsimage 和edits 文件
  2. 将fsimage 和edits 文件合并成新的fsimage文件
  3. 创建新的edits文件,内容开始为空
  4. 启动DataNode

最后,我想问,读者是否对Secondary NameNode有所了解。当我们了解hdfs时通常只关注NameNode和DataNode,但却很少关注Secondary NameNode。

Secondary NameNode 负责合并 NameNode 的 edits文件到 fsimage 文件中

它的工作机制如下:

1.Secondary NameNode 询问 NameNode 是否进行checkpoint。

2.Secondary NameNode 请求执行 checkpoint;

3.NameNode将当前edits和fsimage拷贝到Secondary NameNode

4.Secondary NameNode将edits和fsimage加载到内存,并将两者合并

5.生成新的镜像文件fsimage.chkpoint

6.将fsimage.chkpoint拷贝到NameNode

7.NameNode负责将fsimage.chkpoint重新命名为fsimage

注意,如果NameNode中的元数据丢失的话,可以从Secondary NameNode恢复一部分元数据信息,但不能全部恢复。因为NameNode正在写的edits日志还没有拷贝到Secondary NameNode,这部分恢复不了了。

http://www.lryc.cn/news/334773.html

相关文章:

  • 最新版两款不同版SEO超级外链工具PHP源码
  • .net框架和c#程序设计第二次测试
  • 芒果YOLOv8改进组合157:动态标签分配ATSS+新颖高效AsDDet检测头组合改进,共同助力VisDrone涨点1.8%,小目标高效涨点
  • 自媒体内容创作助手:7款必备ai写作工具一览! #学习方法#科技#其他
  • 文心一言 vs GPT-4 -- 全面横向比较
  • Leetcode C语言习题
  • 比 Nest.js 更优雅的 TS 控制反转策略 - 依赖查找
  • java算法day43 | 动态规划part05 ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
  • STM32无刷电机全套开发资料(源码、原理图、PCB工程及说明文档)
  • 工地安全监测识别摄像机
  • 【零基础学数据结构】顺序表实现书籍存储
  • 【智能算法】黑寡妇优化算法(BWO)原理及实现
  • C#-非托管代码
  • 计算机视觉之三维重建(7)---多视图几何(下)
  • AUTOSAR配置工具开发教程 - 开篇
  • 配置VM开机自启动
  • 工作的第四天
  • 前端开发语言概览:从HTML、CSS到JavaScript
  • 《Java面试自救指南》(专题二)计算机网络
  • Android14音频进阶之<进阶调试>:Perfetto定位系统音频问题(六十六)
  • 使用 Clickhouse 集成的表引擎同步数据方式详解
  • Linux 性能分析工具大全
  • FME学习之旅---day21
  • volta(轻松切换管理Node.js版本)
  • 机器学习知识点
  • SQL注入利用学习-Union联合注入
  • zookeeper源码(12)命令行客户端
  • 深度学习的数学基础--Homework2
  • 什么是HW,企业如何进行HW保障?
  • 【Redis系列】Spring Boot 集成 Redis 实现缓存功能