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,这部分恢复不了了。

相关推荐
最初的↘那颗心1 小时前
Flink Stream API - 源码开发需求描述
java·大数据·hadoop·flink·实时计算
白鲸开源1 小时前
收藏!史上最全 Apache SeaTunnel Source 连接器盘点 (2025版),一篇通晓数据集成生态
大数据·数据库·开源
爱疯生活1 小时前
车e估牵头正式启动乘用车金融价值评估师编制
大数据·人工智能·金融
Lx3522 小时前
MapReduce作业调试技巧:从本地测试到集群运行
大数据·hadoop
计算机程序员小杨2 小时前
计算机专业的你懂的:大数据毕设就选贵州茅台股票分析系统准没错|计算机毕业设计|数据可视化|数据分析
java·大数据
BYSJMG2 小时前
计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
大数据·hadoop·python·信息可视化·spark·django·课程设计
励志成为糕手3 小时前
大数据MapReduce架构:分布式计算的经典范式
大数据·hadoop·mapreduce·分布式计算·批处理
计算机毕设残哥3 小时前
大数据毕业设计选题推荐:护肤品店铺运营数据可视化分析系统详解
大数据·信息可视化·课程设计
君不见,青丝成雪3 小时前
大数据云原生是什么
大数据·云原生
金融小师妹4 小时前
AI多因子模型解析:黄金涨势受阻与美联储9月降息政策预期重构
大数据·人工智能·算法