Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >HDFS Fsimage和Edits解析

HDFS Fsimage和Edits解析

原创
作者头像
堕落飞鸟
发布于 2023-05-12 01:58:51
发布于 2023-05-12 01:58:51
4570
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

Hadoop分布式文件系统HDFS)中,元数据信息(包括文件名、目录结构、权限等)是由NameNode来管理和维护的。为了保证元数据的可靠性和一致性,HDFS使用了一些机制来备份和恢复元数据信息。其中,Fsimage和Edits是HDFS元数据备份和恢复的核心组件。

Fsimage是指文件系统映像,它是NameNode的元数据信息的静态副本。它包含了HDFS中所有文件和目录的完整信息,包括它们的路径、权限、时间戳和数据块的位置等。Fsimage文件是一个二进制文件,通常存储在本地磁盘上。它由NameNode在启动时生成,并随着编辑日志(Edits)的增长而不断更新。

Edits是指编辑日志,它包含了NameNode对文件系统进行的所有修改操作。每个Edits文件包含了一系列的编辑操作,例如创建文件、修改文件名、修改权限等。它是一个顺序写日志,即每次写入都是追加到日志文件的末尾。因此,Edits文件可以不断增长,直到达到一定的大小后,NameNode会将它们合并到Fsimage中,以减少Fsimage文件的大小。

下面,我们来具体了解一下Fsimage和Edits的工作原理。

Fsimage的生成和更新

当NameNode启动时,它会从磁盘中加载最新的Fsimage文件,以恢复之前的文件系统状态。同时,它会从Edits文件中读取之前未合并的编辑操作,并将它们应用到当前的文件系统状态中。这个过程通常称为“重演(replaying)”。

一旦NameNode完成了编辑操作的重演,它就会生成一个新的Fsimage文件,包含了最新的文件系统状态。此时,所有之前的Edits文件都可以被删除,因为它们已经被合并到了新的Fsimage文件中。在接下来的过程中,NameNode将会使用新的Fsimage文件作为元数据信息的静态副本,直到下一个Edits文件被合并到Fsimage中。

Edits的创建和合并

当用户对HDFS文件系统进行修改操作时,NameNode会将这些操作写入一个新的Edits文件中。例如,如果用户创建了一个新的文件,则NameNode会将这个操作写入当前的Edits文件中。这个操作会包含有关该文件的详细信息,例如文件名、权限、时间戳和数据块的位置等。

当一个Edits文件达到一定的大小时,通常是64MB,NameNode会将它合并到最新的Fsimage文件中。这个过程称为“合并(merging)”。在合并期间,NameNode会将Edits文件中的编辑操作应用到Fsimage文件中,以创建一个新的、包含了最新文件系统状态的Fsimage文件。合并完成后,NameNode会删除旧的Edits文件,并创建一个新的、空的Edits文件,以等待下一次编辑操作的写入。

需要注意的是,当Edits文件被合并到Fsimage中时,NameNode并不会将所有的编辑操作都应用到Fsimage中。相反,它只会将需要修改的元数据信息进行更新,以减少合并操作的时间和成本。具体来说,NameNode会通过内存中的一棵文件树来判断每个文件或目录是否需要更新。如果文件树中已经存在了相应的文件或目录,则会将Edits文件中的编辑操作应用到该文件或目录上。否则,NameNode会将该文件或目录的完整信息添加到文件树中,并将它们写入Fsimage文件中。

例如,假设我们首先创建了一个名为“/data/test.txt”的文件,并将它保存在HDFS上。此时,NameNode会在当前的Edits文件中写入一个“create”操作,表示创建了一个新文件。在下一个合并周期中,NameNode会将这个操作应用到Fsimage文件中,以更新文件系统状态。

接着,我们再次对“/data/test.txt”文件进行修改,例如将文件名改为“/data/test2.txt”。此时,NameNode会在当前的Edits文件中写入一个“rename”操作,表示修改了文件名。在下一个合并周期中,NameNode会将这个操作应用到Fsimage文件中,以更新文件系统状态。

最后,需要注意的是,如果Fsimage文件或Edits文件损坏了,HDFS将无法恢复元数据信息。因此,为了保证元数据的可靠性和一致性,HDFS通常会使用多个NameNode实例来备份元数据信息,并进行周期性的检查和修复。这个过程称为“备份(backup)”和“检查点(checkpoint)”,它可以保证HDFS的高可用性和数据一致性

综上所述,Fsimage和Edits是HDFS元数据备份和恢复的核心组件,它们通过相互配合来保证HDFS元数据的可靠性和一致性。Fsimage是元数据信息的静态副本,而Edits是元数据信息的动态记录,它们通过周期性的合并操作来保证元数据信息的最新性和正确性。在实际应用中,我们需要仔细理解Fsimage和Edits的工作机制,并进行合理的配置和管理,以保证HDFS的高可用性和数据一致性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop面试复习系列——HDFS(一)
转载自: https://cloud.tencent.com/developer/article/1031641 https://my.oschina.net/freelili/blog/1853668
solve
2019/10/30
7010
Hadoop重点难点:HDFS读写/NN/2NN/DN
NameNode在内存中保存着整个文件系统的名字空间和文件数据块的地址映射(Blockmap)。如果NameNode宕机,那么整个集群就瘫痪了。
大数据真好玩
2021/10/12
1.2K0
Hadoop重点难点:HDFS读写/NN/2NN/DN
什么是HDFS?算了,告诉你也不懂。
上一篇已经讲解了「大数据入门」的相关基础概念和知识了,这篇我们来学学HDFS。如果文章有错误的地方,不妨在评论区友善指出~
Java3y
2020/03/05
4670
HDFS笔记(特点、原理与基本架构)
以文件为基本存储单位的缺点 1、文件大小不同,难以实现负载均衡。 2、处理一个文件时,只能利用一个节点资源,无法动用集群。
Maynor
2021/12/18
3910
HDFS笔记(特点、原理与基本架构)
Hadoop(四)HDFS集群详解
前言   前面几篇简单介绍了什么是大数据和Hadoop,也说了怎么搭建最简单的伪分布式和全分布式的hadoop集群。接下来这篇我详细的分享一下HDFS。   HDFS前言:     设计思想:(分而治之)将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析。     在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务。   分布式文件系统:     问题引发:海量数据超过了单台物理计算机的存储能力     解
用户1195962
2018/01/18
2.3K0
Hadoop(四)HDFS集群详解
Hadoop(四)HDFS集群详解
  前面几篇简单介绍了什么是大数据和Hadoop,也说了怎么搭建最简单的伪分布式和全分布式的hadoop集群。接下来这篇我详细的分享一下HDFS。
大道七哥
2019/09/10
1.9K0
Hadoop(四)HDFS集群详解
深刻理解HDFS工作原理
概述 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统的简称。HDFS被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。DFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop
xiangzhihong
2018/02/06
2.9K0
深刻理解HDFS工作原理
HDFS工作机制和原理
HDFS是一种分部式的文件系统,在他出现以前就已经存在了很多中分布式文件系统,但是他们都是部署在服务器上,需要高的POSIX接口,同时他们默认服务器是稳定的可以提供大量资源。
Tim在路上
2020/08/04
1.2K0
快速了解HDFS、NameNode和DataNode
首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。它其实是将一个大文件分成若干块保存在不同服务器的多个节点中。通过联网让用户感觉像是在本地一样查看文件,为了降低文件丢失造成的错误,它会为每个小文件复制多个副本(默认为三个),以此来实现多机器上的多用户分享文件和存储空间。
星哥玩云
2022/07/19
2K0
快速了解HDFS、NameNode和DataNode
HDFS元数据管理:fsimage&edits
介绍HDFS的元数据管理机制,说明fsimage文件和edits的作用,给出解析fsimage文件和edits文件的demo
Eights
2020/07/10
2.8K0
HDFS元数据管理:fsimage&edits
【大数据】hdfs
                         spark  Streaming
Java架构师必看
2021/07/21
3320
独家 | 一文读懂Hadoop(二)HDFS(上)
随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识。2017年年初apache发行了Hadoop3.0,也意味着一直有一群人在对Hadoop不断的做优化,不仅如此,各个Hadoop的商业版本也有好多公司正在使用,这也印证了它的商业价值。 读者可以通过阅读“一文读懂Hadoop”系列文章,对Hadoop技术有个全面的了解,它涵盖了Hadoop官网的所有知识点,并且通俗易懂,英文不好的读者完全可以通过阅读此篇文章了解Hado
数据派THU
2018/01/30
2.4K0
独家 | 一文读懂Hadoop(二)HDFS(上)
HDFS——fsimage
在《HDFS——editLog文件》一文中提到了namenode(后面简称nn)的元数据信息由editlog和fsimage文件组成。
陈猿解码
2023/02/28
8080
HDFS——fsimage
HDFS中Fsimage,Edits详解(6)
本篇博客,小菌为大家带来的是HDFS中NameNode的Fsimage与Edits的详解。
大数据梦想家
2021/01/22
1.7K0
HDFS中Fsimage,Edits详解(6)
HDFS经典简答题(实习生必看!)
前一段时间,小菌陆续分享了HDFS系列1-12的博客,总算是要完结了。于是小菌打算再出一期关于HDFS的经典面试题,其中的内容大多都出自于在前面分享的博客中,感兴趣的小伙伴们可以自行浏览,链接小菌放到文末了哦~
大数据梦想家
2021/01/22
7200
HDFS经典简答题(实习生必看!)
HDFS最基础使用
随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。
ha_lydms
2023/10/04
3120
HDFS最基础使用
HDFS的SecondaryNameNode作用,你别答错
这是道经典的基础面试题,笔者问过面试者很多次(当然也被面试官问过很多次)。从印象看,大约有一半的被面试者无法正确作答,给出的答案甚至有“不就是NameNode的热备嘛”。本文来简单聊聊相关的知识,为节省篇幅,将SecondaryNameNode简称SNN,NameNode简称NN。
王知无-import_bigdata
2020/04/17
1.3K0
HDFS NN和2NN工作机制
HDFS是Apache Hadoop的分布式文件系统,由NameNode和DataNode组成。在HDFS中,NameNode是HDFS的主要组件之一,它负责维护文件系统的命名空间和访问控制信息。同时,NameNode也负责管理所有DataNode节点的元数据信息,包括文件和目录的层次结构,文件块的位置信息以及访问控制列表等。因此,NameNode是整个HDFS系统的中心控制器。
堕落飞鸟
2023/05/12
4440
HDFS分布式文件存储系统详解
优点: 1.处理超大文件 能用来存储管理PB级的数据 1PB = 1024TB 2.处理非结构化数据、半结构化数据、结构化数据 流式的访问数据 一次写入、多次读取 3.运行于廉价的商用机器集群上 可运行在低廉的商用硬件集群上 故障时能继续运行且不让用户察觉到明显的中断
全栈程序员站长
2022/08/22
1.6K0
HDFS分布式文件存储系统详解
2021年大数据Hadoop(十一):HDFS的元数据辅助管理
当 Hadoop 的集群当中, NameNode的所有元数据信息都保存在了 FsImage 与 Eidts 文件当中, 这两个文件就记录了所有的数据的元数据信息, 元数据信息的保存目录配置在了 hdfs-site.xml 当中
Lansonli
2021/10/11
7520
相关推荐
Hadoop面试复习系列——HDFS(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档