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

相关推荐
财迅通Ai2 小时前
商业航天概念领涨A股,航天ETF华安(159267.SZ)收盘上涨1.2%
大数据·人工智能·区块链·中国卫星·航天电子
迷茫的启明星2 小时前
各职业在当前发展阶段,使用AI的舒适区与盲区
大数据·人工智能·职场和发展
Henb9294 小时前
# 端到端延迟优化实战:从分钟级到秒级的全链路优化
大数据·数据查询优化
璞华Purvar5 小时前
涂料行业数智化升级破局:璞华易研 PLM 以 AI 赋能研发全链路
大数据·人工智能
却话巴山夜雨时i9 小时前
互联网大厂Java面试实录:技术栈解析与场景剖析
java·大数据·spring boot·spring cloud·微服务·ai·面试
渣渣盟9 小时前
Flink流处理:温度跳变检测与状态管理
大数据·flink·scala
AI先驱体验官9 小时前
债小白分析:债务优化服务的新变量、AI能否带来行业升级
大数据·人工智能·深度学习·重构·aigc
dingzd9510 小时前
社媒平台限流频发卖家如何突破流量瓶颈
大数据·人工智能·新媒体运营·产品运营·营销策略