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

相关推荐
TDengine (老段)4 分钟前
TDengine 时间函数 WEEK 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
xieyan08111 小时前
选股中的财务指标运用_ROE_PE_PB...
大数据·人工智能
颜子鱼3 小时前
git基础
大数据·git·elasticsearch
乌恩大侠5 小时前
AI-RAN 在 Spark上部署 Sionna-RK
大数据·分布式·spark
G皮T7 小时前
【ELasticsearch】索引字段设置 “index”: false 的作用
大数据·elasticsearch·搜索引擎·全文检索·索引·index·检索
程序员皮皮林9 小时前
Redis:大数据中如何抗住2000W的QPS
大数据·数据库·redis
武子康10 小时前
大数据-169 Elasticsearch 入门到可用:索引/文档 CRUD 与搜索最小示例
大数据·后端·elasticsearch
v***913010 小时前
PostgreSQL 中进行数据导入和导出
大数据·数据库·postgresql
李兆龙的博客11 小时前
从一到无穷大 #61 Hive史诗
数据仓库·hive·hadoop
千里念行客24012 小时前
国产射频芯片“小巨人”昂瑞微今日招股 拟于12月5日进行申购
大数据·前端·人工智能·科技