【Hadoop-HDFS】HDFS中Fsimage与Edits详解

news/2025/2/26 4:52:28

【Hadoop-HDFS】HDFS中Fsimage与Edits详解

  • 1)概述
  • 2)NameNode元数据解析
  • 3)Fsimage
    • 3.1.Fsimage 的作用
    • 3.2.FSimage 的文件信息查看
  • 4)Edits
    • 4.1.Edits 的作用
    • 4.2.Edits 的文件信息查看
  • 5)元数据信息目录的配置

1)概述

在HDFS中,NameNode 保存了整个 HDFS 的元数据信息,而这些数据最终会被持久化到 Fsimage 文件和 EditLog 文件。

换而言之,NameNode 的元数据信息FsimageEditlog 组成。

Fsimage 存放上次 checkpoint 生成的文件系统元数据。

EditLog 则存放文件系统的操作日志,也就是用户对目录、文件的每个写操作(包括创建、删除、写入等)都会被记录到 Editlog 文件中。

注意

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

2)NameNode元数据解析

1、`第一次启动 NameNode 格式化后,创建 Fsimage 和 Edits 文件。如果不是第一次启动,直接加载 Edits 和 Fsimage 文件到内存。

2、客户端对元数据进行增删改的请求。

3、NameNode 记录操作日志,更新滚动日志。

4、NameNode 在内存中对数据进行增删改查。

在这里插入图片描述

3)Fsimage

3.1.Fsimage 的作用

Fsimage 保存了最新的元数据检查点,在 HDFS 启动时加载 Fsimage 的信息,包含了整个 HDFS 文件系统的所有目录和文件的信息。

  • 对于文件来说包括了数据块描述信息、修改时间、访问时间等。

  • 对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。

3.2.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

在这里插入图片描述

4)Edits

4.1.Edits 的作用

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

4.2.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

5)元数据信息目录的配置

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>

http://www.niftyadmin.cn/n/272593.html

相关文章

15个使用率超高的Python库,下载量均过亿

今天给大家分享最近一年内PyPI上下载量最高的Python包。现在我们来看看这些包的作用&#xff0c;他们之间的关系&#xff0c;以及为什么如此流行。 1. Urllib3&#xff1a;8.93亿次下载 Urllib3 是 Python 的 HTTP 客户端&#xff0c;它提供了许多 Python 标准库没有的功能。 …

Java 静态代理与动态代理全面讲解

一、代理模式的作用 Java中代理模式是一种常见的设计模式&#xff0c;代理模式可以在不改变原有代码的情况下增强类的功能。代理模式包括静态代理和动态代理两种形式&#xff0c;AOP的底层机制就是动态代理。 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理…

苹果商店上架流程_App上架苹果流程及注意事项

APP上架是&#xff1a;APP应用从提交审核到上架整个过程。目的是让应用展示在APP Store上获取流量及用户 一、IOS上架整个流程 1、申请开发者账号 2、创建APP ID及申请证书 3、itunes connect 创建APP 4、打包 上传APP 5、提交APP&#xff0c;上线成功 1、申请开发者账号 苹果开…

基于ROS实现的机器人运动PID控制器

下面是一个基于ROS实现的机器人运动PID控制器的例子&#xff1a; 首先&#xff0c;需要定义机器人的运动控制器节点&#xff0c;例如&#xff1a; ros::NodeHandle nh; ros::Publisher cmd_vel_pub nh.advertise<geometry_msgs::Twist>("cmd_vel", 10); ros…

linux ubuntu 安装 GDAL,SQLite3, Proj6库,遥感库GDAL教程

为了处理遥感数据&#xff0c;需要安装GDAL库&#xff0c;如果使用 pip install GDAL是安装不了 详细步骤&#xff1a; NOTE: 需要安装sqlite, proj6, 再去安装GDAL&#xff0c;以下均采用源码安装 系统&#xff1a;ubuntu18 1、安装 sqlite 地址&#xff1a;https://www.sqli…

最近部门新的00后真是卷王,工作没1年,入职18K

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。 这不&#xff0c;前段时间我们公司来了个00后&#xff0c;工作都没1年&#xff0c;到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 …

linux系统中的用户态和内核态

linux系统中的用户态和内核态 文章目录 linux系统中的用户态和内核态[TOC](文章目录) 定义一、Linux系统简介Linux内核结构 二、总结 定义 在Linux系统中&#xff0c;用户态和内核态是两种不同的运行模式&#xff0c;它们主要区别在于程序所处的权限和访问硬件资源的方式。 用…

C++ Primer 第4章 复合类型

1.数组初始化 int arr[10] {1}; //只有第一个被初始化为1&#xff0c;其余都是0 //c11 的新特性 int arr [10] {};//{0} 都会将数组初始化为0 2. 字符串 int arr[8]{a,b};//合理 int arr[8]"aabbccdd"//合理 int arr[] "aaaabbb"//合理 3.输入问题 …