hadoop核心组件——HDFS系列讲解之Fsimage,Edits详解

【Hadoop-HDFS】HDFS中Fsimage与Edits详解 在HDFS中,NameNode 保存了整个 HDFS 的元数据信息,而这些数据最终会被持久化到 Fsimage 文件和 EditLog 文件。换而言之,NameNode 的元数据信息由Fsimage和Editlog组成。Fsimage 存放上次 checkpoint 生成的文件系统元数据。EditLog 则存放文件系统的操作日志,也就是用户对目录、文件的每个写操作(包括创建、删除、写入等)都会被记录到 Editlog 文件中。注意。【Hadoop-HDFS】HDFS中Fsimage与Edits详解 阅读详情

NameNode元数据解析

(1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载edits和fsimage文件到内存。
(2)客户端对元数据进行增删改的请求。
(3)namenode记录操作日志,更新滚动日志。
(4)namenode在内存中对数据进行增删改查。

fsimage保存了最新的元数据检查点,在HDFS启动时加载fsimage的信息,包含了整个HDFS文件系统的所有目录和文件的信息。
对于文件来说包括了数据块描述信息、修改时间、访问时间等。
对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。

editlog主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。

Fsimage,editlog主要用于在集群启动时将集群的状态恢复到关闭前的状态。
为了达到这个目的,集群启动时将Fsimage、editlog加载到内存中,进行合并,合并后恢复完成。

元数据信息目录的配置

hdfs-site.xml当中

<property>
  <name>dfs.namenode.name.dir</name>
     <value>
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas
</value>
</property>
<property>
   <name>dfs.namenode.edits.dir</name>
   <value>
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/edits
</value>
</property>

FSimage文件当中的文件信息查看

使用命令 hdfs oiv

cd  /export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas/current
hdfs oiv -i fsimage_0000000000000000864 -p XML -o hello.xml

edits当中的文件信息查看

查看命令 hdfs oev

cd  /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits/current
hdfs oev -i  edits_0000000000000000865-0000000000000000866 -o myedit.xml -p XML

secondarynameNode如何辅助管理FSImage与Edits文件

由于editlog记录了集群运行期间所有对HDFS的相关操作,所以这个文件会很大。
集群关闭后再次启动时会将Fsimage,editlog加载到内存中,进行合并,恢复到集群的。
由于editlog文件很大所有,集群再次启动时会花费较长时间。
为了加快集群的启动时间,所以使用secondarynameNode辅助NameNode合并Fsimage,editlog。

在这里插入图片描述

1、 secnonaryNN通知NameNode切换editlog
2、secondaryNN从NameNode中获得FSImage和editlog(通过http方式)
3、secondaryNN将FSImage载入内存,然后开始合并editlog,合并之后成为新的fsimage
4、secondaryNN将新的fsimage发回给NameNode
5、NameNode用新的fsimage替换旧的fsimage

完成合并的是secondarynamenode,会请求namenode停止使用edits,暂时将新写操作放入一个新的文件中(edits.new)。secondarynamenode从namenode中通过http get获得edits,因为要和fsimage合并,所以也是通过http get 的方式把fsimage加载到内存,然后逐一执行具体对文件系统的操作,与fsimage合并,生成新的fsimage,然后把fsimage发送给namenode,通过http post的方式。namenode从secondarynamenode获得了fsimage后会把原有的fsimage替换为新的fsimage,把edits.new变成edits。

Hadoop进入安全模式时需要管理员使用dfsadmin的save namespace来创建新的检查点。
secondarynamenode在合并edits和fsimage时需要消耗的内存和namenode差不多,所以一般把namenode和secondarynamenode放在不同的机器上。
fsimage与edits的合并时机取决于两个参数,第一个参数是默认1小时fsimage与edits合并一次。第二个参数是hdfs操作次数达到1000000 也会触发合并。

第一个参数:时间达到一个小时fsimage与edits就会进行合并
dfs.namenode.checkpoint.period :3600
第二个参数:hdfs操作达到1000000次也会进行合并
dfs.namenode.checkpoint.txns	:1000000
还有一个参数是每隔多长时间检查一次hdfs的操作次数
dfs.namenode.checkpoint.check.period	:60

namenode元数据信息多目录配置

为了保证元数据的安全性,我们一般都是先确定好我们的磁盘挂载目录,将元数据的磁盘做RAID1
namenode的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。

具体配置如下:
hdfs-site.xml

<property>
   <name>dfs.namenode.name.dir</name>
<value>
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas,
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas,
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas,
file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas,
</value>
</property>

namenode故障恢复

secondaryNamenode对namenode当中的fsimage和edits进行合并时,每次都会先将namenode的fsimage与edits文件拷贝一份过来,所以fsimage与edits文件在secondarNamendoe当中也会保存有一份,如果namenode的fsimage与edits文件损坏,那么我们可以将secondaryNamenode当中的fsimage与edits拷贝过去给namenode继续使用,只不过有可能会丢失一部分数据。这里涉及到几个配置选项:

namenode保存fsimage的配置路径:

<property>
                <name>dfs.namenode.name.dir</name>
                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas</value>
 </property>

namenode保存edits文件的配置路径:

<property>
                <name>dfs.namenode.edits.dir</name>
                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/edits</value>
</property>

secondaryNamenode保存fsimage文件的配置路径:

<property>
                <name>dfs.namenode.checkpoint.dir</name>
                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/snn/name</value>
</property>

secondaryNamenode保存edits文件的配置路径:

<property>
                <name>dfs.namenode.checkpoint.edits.dir</name>
                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/snn/edits</value>
</property>

故障恢复步骤

第一步:杀死namenode进程

使用jps查看namenode进程号,然后直接使用kill -9 进程号杀死namenode进程

127156 QuorumPeerMain
127785 ResourceManager
17688 NameNode
127544 SecondaryNameNode
127418 DataNode
128365 JobHistoryServer
19036 Jps
127886 NodeManager

[root@node01 servers]# kill -9 17688

第二步:删除namenode的fsimage与edits文件

namenode所在机器执行以下命令,删除fsimage与edits文件
删除fsimage与edits文件

rm -rf /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/*
rm -rf /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits/*

第三步:拷贝secondaryNamenode的fsimage与edits文件到namenode的fsimage与edits文件夹下面去

将secondaryNameNode所在机器的fsimage与edits文件拷贝到namenode所在的fsimage与edits文件夹下面去
由于我的secondaryNameNode与namenode安装在同一台机器,都在node01上面,node01执行以下命令进行拷贝

cp -r /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name/* /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/
cp -r /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits/* /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits

第四步:启动namenode

node01服务器执行以下命令启动namenode

cd hadoop-2.6.0-cdh5.14.0/
sbin/hadoop-daemon.sh start namenode

第五步:浏览器页面正常访问

http://node01:50070/explorer.html#/
hadoop 源码分析(二)HDFS nameNode 之 FSNamesystem初始化源码分析之加载fsImage 和 edits log 上一篇 讲解了nameNode启动的时候,NameNodeHttpServer的启动流程,其实简单来说就是基于hadoop自己实现的HttpServer2服务绑定一个InetSokcetAddress地址,也就是端口号,端口号哪来的?默认配置文件获取呗,最后在将HttpServer2中绑定一些servlet来处理url请求就完成了我们50070端口的请求处理。 那么本篇分析nameNode进程第二个比较核心的,应该说是最核心的组件FSNamesystem,为什么说是最核心组件呢,因为元数据管理和bloc. 阅读详情

相关推荐

HDFS角色职责超详细概述Namenode、Datanode、元数据管理+fsimage 内存镜像文件+ Edits log编辑日志、元数据加载顺序

NameNode是HDFS的核心,集群的主角色,被称为Master。 NameNode仅存储管理HDFS的元数据:文件系统namespace操作维护目录树,文件和块的位置信息。NameNode不存储实际数据或数据集。数据本身实际存储在DataNodes中。 NameNode知道HDFS中任何给定文件的块列表及其位置。使用此信息NameNode知道如何从块中构建文件。NameNode并不持久化存储每个文件中各个块所在的DataNode的位置信息,这些信息会在系统启动时从DataNode汇报中重建。

qq_40585384的博客 6673

Hadoop生态圈(三)HDFS元数据持久化(FSImage、EditLog、SNN)

这样在 NameNode 启动的时候就不用将巨大的 EditLog 中的事务再执行一遍,而是直接加载合并之后的新 FSImage ,然后重新执行未被合并的 EditLog 文件就可以了。此时 NameNode 启动结束,等待接受用户的操作请求,并把用户操作写入新的 edit log 中,定期进行 checkpoint,对元数据执行快照。另外,由于 NameNode 在启动的时候,需要将 EditLog 中的操作重新执行一遍,过大的 EditLog 会延长 NameNode 的启动时间。

傅红雪的专栏 1733

Hadoop系列-03 Hadoop HDFS进阶实战:核心组件解析与小文件治理指南

本文深入剖析Hadoop分布式文件系统(HDFS)的核心组件NameNode和SecondaryNameNode工作机制。NameNode负责管理元数据信息,将元数据存储于内存以实现高效检索,并通过FSImage和edits文件实现持久化。为解决文件膨胀问题,SecondaryNameNode定期合并FSImage与edits文件。文章详细解析了元数据存储机制、检查点配置参数(如checkpoint周期设为1小时),并提供了查看FSImage和edits文件的命令方法。同时探讨了小文件治理方案,包括HAR文

yangwei2048的博客 629

Hadoop HDFS Fsimage Edits详解

NameNode元数据解析 (1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载edits和fsimage文件到内存。 (2)客户端对元数据进行增删改的请求。 (3)namenode记录操作日志,更新滚动日志。 (4)namenode在内存中对数据进行增删改查。 (图片来源于网络) fsimage保存了最新的元数据检查点,在HDFS启动时加载...

大数据流浪法师的学习笔记与分享 911

2024年最新关于Hadoop生态圈相关组件的介绍

冷备”、"温备"和"热备"是备份和恢复策略中常见的术语,它们描述了在不同情况下备份数据的状态以及备份过程的准备程度。这些术语主要用于描述系统或数据的备份和恢复策略。冷备。

2401_84181108的博客 836

【分布式】第三章 HDFS

HDFS是一种用于存储大规模数据的分布式文件管理系统,具有高容错性、高吞吐量等特点。其核心架构包括NameNode、DataNode和Secondary NameNode。HDFS适合一次写入、多次读取的场景,但不适合低延迟访问或频繁修改。文件以块(默认128MB)形式存储,通过多副本机制确保数据可靠性。HDFS提供了丰富的Shell操作命令和Java API客户端,支持文件上传、下载、删除等操作。数据读写流程涉及客户端、NameNode和DataNode的协同工作,采用机架感知策略优化数据分布。

2502_91990594的博客 297

HADOOP::Fsimage和Edits解析

NameNode被格式化之后,将在/opt/module hadoop-3.1.3/data/tmp/dfs/name/curent目录中产生如下文件seen_txidVERSION: HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息。:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits文件中。保存的是一个数字,就是最后一个edits_的数字。

zn2021220822的博客 2009

通过两个mark点确定某一个点的位置

read_image (Image0, '0.bmp') binary_threshold (Image0, Region, 'max_separability', 'dark', UsedThreshold) connection (Region, ConnectedRegions) fill_up (ConnectedRegions, RegionFillUp) select_shape_std (RegionFillUp, SelectedRegions, 'max_area', 70) red...

优快云博客 3889

Hadoop3:HDFS的Fsimage和Edits文件介绍

Hadoop

Brave_heart4pzj的博客 1094

VisionPro九点标定实战:从相机拍照到机器人精准抓取的完整流程

本文详细介绍了VisionPro九点标定技术在工业自动化中的应用,从相机拍照到机器人精准抓取的完整流程。通过硬件配置、标定步骤和实战技巧的解析,帮助工程师实现高精度视觉引导系统,提升生产效率。特别适合需要解决二维图像坐标与物理空间转换问题的自动化项目。

weixin_30664051的博客 406

Xilinx VU+系列多DIE FPGA时序约束与跨DIE信号优化策略

本文深入探讨了Xilinx VU+系列多DIE FPGA的时序约束与跨DIE信号优化策略。针对2.5D/3D封装技术带来的时序挑战,详细解析了SLR区域约束、Laguna寄存器配置及跨时钟域约束等关键技术,提供了实用的TCL脚本和RTL优化示例,帮助开发者有效提升设计性能和时序收敛效率。

weixin_29209801的博客 654

HDFS元数据管理:Edits与Fsimage协同工作机制解析

本文深入解析了HDFS元数据管理的核心机制,重点阐述了Edits日志与Fsimage文件的协同工作原理。通过剖析NameNode的启动恢复流程和SecondaryNameNode主导的Checkpoint合并流程,揭示了HDFS如何平衡高性能与高可靠性。文章还提供了关键配置调优、手动操作命令及常见问题排查思路,是深入理解HDFS运维与优化的关键指南。

weixin_29057237的博客 304

QT+QGIS跨平台编译(基于Qt,采用一套代码、一套框架,完成QGIS第三方库、核心库、应用程序的跨平台编译)

QT+QGIS跨平台编译。 基于Qt,采用一套代码、一套框架,完成QGIS第三方库、核心库、应用程序的跨平台编译。

LuckyHanMo的博客 4378

Hadoop详解-HDFS-01

目录1、Hadoop集群搭建1.1、为什么在安装Hadoop集群之前需要重新编译?1.2、Hadoop 2.X版本的架构模型架构一(单节点架构):文件系统核心模块1、HDSF文件存储系统中核心组件:2、Yarn资源调度系统(也叫做数据计算核心模块)中:架构二(高可用架构):文件系统核心模块1、HDSF文件存储系统中核心组件:1.3、Hadoop集群搭建1、core-site.xml2、hdfs-site.xml3、hadoop-env.sh4、mapred.site.xml5、yarn-site.xml6、

AlwaysBestSign_X的博客 306

STM32 HAL PWM (占空比) -电机软启动不到位解决

为了避免电机启动电压大造成设备损坏,或者供电不足导致重启,通常在对启动都需要一个PWM进行软启动,下面对PWM电机软启动详细介绍。

weixin_44597885的博客 867

让闲置 MacBook 当 OpenClaw 主机:合盖运行 + 后台常驻

摘要 本文详细介绍如何将闲置MacBook改造为OpenClaw服务器,实现合盖后持续运行。首先推荐Ubuntu 22.04 LTS作为操作系统,提供详细的安装步骤和分区建议。重点介绍三种禁用合盖休眠的方法:修改systemd-logind配置、使用pm-utils工具以及调整GRUB设置。随后指导如何安装Docker并部署OpenClaw服务,包括创建docker-compose.yml文件和配置环境变量。最后说明如何设置系统服务实现OpenClaw开机自启。通过以上配置,可使MacBook在合盖状态下7

一键难忘的博客 4657

Hadoop2 - HDFS文件系统

1HDFS(Hadoop Distributed File System)是 Apache Hadoop 生态的核心组件之一,是专门为海量数据存储设计的分布式文件系统。你可以把它理解成 “大数据时代的分布式超级硬盘”—— 它将超大文件切分成小块,分散存储在集群的多台廉价商用服务器上,同时对外提供统一的文件访问接口,让用户感觉就像使用本地文件系统一样。

hk000001的博客 1035

ABAP Cloud define table 里的 not null 究竟在约束什么?——语义、场景与可运行示例

ABAP Cloud 中 not null 与 NULL 的用法解析 本文探讨了 ABAP Cloud 中 not null 关键字的语义与使用场景,对比了传统 ABAP 与 ABAP Cloud 在表字段定义上的差异: 核心概念 not null 是数据库层的列约束,强制字段不能存储 NULL 值 ABAP Cloud 通过 DDL 显式声明列是否允许 NULL,HANA 上 CDS 表默认创建为 NOT NULL 使用建议 主键、外键、审计字段等必须使用 not null 业务上可缺失的字段(如批准日期

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 302

hadoop知识点总结

一组独立的进程(通常 3 个或更多节点,奇数个以避免脑裂),负责存储 NameNode 的元数据编辑日志(EditLog),是 Active 与 Standby 之间元数据同步的核心组件。2.在内存中应用edits的所有操作,获得最新元数据,已恢复上一次关闭时的元数据状态,创建新的空edits文件,在经过操作后实时将增量edits写回磁盘。NodeManager 是 YARN 集群中每个从节点上的代理,负责管理当前节点的资源(CPU、内存、磁盘、网络等),以及执行具体的应用程序任务。

qq_51126663的博客 1532

【Unity 反向运动学插件】Final IK 一套完整的IK解决方案

Final IK是Unity中一套完整的反向运动学解决方案,提供多种IK算法(CCD、FABRIK等)和功能模块,包括全身IK、VR驱动、武器瞄准、视线跟随等。其核心是通过数学方法计算关节旋转,使末端骨骼精确到达目标位置。系统支持多约束求解、旋转限制、动画烘焙及交互系统,采用模块化设计,兼顾性能与扩展性,适用于动作游戏、VR等需要高质量角色控制的场景,是Unity生态中最成熟的IK工具链之一。

2403_88403568的博客 1004

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

第十五讲.元数据分析:查看解析fsimage和Edits文件

视频:【美妙人生】Hadoop课程系列之HDFS--手把手教你精通HDFS 【美妙人生】Hadoop课程系列之HDFS--手把手教你精通HDFS 【视频笔记】 元数据 ------------------------- 1.查看fsimage文件 $>hdfs oiv -i fsimage_0000000000000000022 -o ~/fs22.xml -p XML 【 <?xml version="1.0"?> ...

美妙人生IT 443

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【Hadoop生态】HDFS的元数据管理机制

hadoop元数据管理,Fsimage镜像文件、Edits编辑日志,一文读懂

Chad_it的博客 1188

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HDFS 分布式文件系统详解

1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪一种,需要看我们具体的实现类,在我们实际工作中,用到的最多的就是HDFS(分布式文件系统)以及LocalFileSystem(本地文件系统)了。 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。 HDFS(Hadoop Distribu.

ytp552200ytp的博客 4081

HDFS体系架构(最全)

HDFS采用主从架构,核心组件包括NameNode(管理元数据)、DataNode(存储数据块)、SecondaryNameNode(辅助元数据管理)和Client(用户接口)。NameNode维护文件系统命名空间和块映射,不持久化块位置信息;DataNode通过心跳机制向NameNode汇报块信息;SecondaryNameNode定期合并fsimage和edits文件以减轻NameNode负担;Client提供多种访问接口。该架构通过元数据集中管理、数据分布式存储实现高吞吐量访问,但NameNode单点

ywl470812087的博客 11万+

六、HDFS中的NameNode和SecondaryNameNode

上篇博客介绍了Hadoop的核心组件HDFS,本篇主要介绍HDFS中的NameNode和SecondaryNameNode,关注专栏《from zero to hero(Hadoop篇)》查看相关系列的文章~ 在这之前,我们首先得弄明白一件事情:NameNode中的元数据是存储在哪里的?我们可以假设一下,如果元数据存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还要响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失...

象在舞的技术专栏 3770

hadoop学习 12 HDFS FSImage Edit文件

打开fsimage文件(以XML文件格式) 查看XML格式的fsimage文件: 打开edits文件

Cupcake_JackY的博客 183
上一篇: hadoop核心组件——HDFS系列讲解之HDFS的高级使用命令
下一篇: hadoop核心组件——HDFS系列讲解之HDFS新增节点与删除节点
LeeBoolean
博客等级 码龄6年 12粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值