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. hadoophdfsfsimage文件edits文件

    2024-04-09 13:06:03       35 阅读
  2. HadoopHDFS分布式文件系统

    2024-04-09 13:06:03       29 阅读
  3. HTTP方式在线访问Hadoop HDFS文件解决方案

    2024-04-09 13:06:03       42 阅读
  4. hdfs小知识(hadoop hdfs hive)

    2024-04-09 13:06:03       37 阅读
  5. 7-HDFS文件管理

    2024-04-09 13:06:03       45 阅读
  6. Hadoop集成对象存储和HDFS磁盘文件存储

    2024-04-09 13:06:03       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 13:06:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 13:06:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 13:06:03       82 阅读
  4. Python语言-面向对象

    2024-04-09 13:06:03       91 阅读

热门阅读

  1. 十分钟学会WebSocket

    2024-04-09 13:06:03       37 阅读
  2. redis集群搭建教程

    2024-04-09 13:06:03       38 阅读
  3. 数据大屏:现代数据分析与可视化的重要工具

    2024-04-09 13:06:03       34 阅读
  4. Docker中运行ASP.NET Core应用

    2024-04-09 13:06:03       36 阅读
  5. 大家问的最多的问题统一回复

    2024-04-09 13:06:03       37 阅读
  6. 网桥设置介绍

    2024-04-09 13:06:03       39 阅读
  7. 文心一言和GPT-4横向对比

    2024-04-09 13:06:03       33 阅读
  8. docker 的使用与说明

    2024-04-09 13:06:03       36 阅读