HDFS中Fsimage,Edits详解(6)

举报
大数据梦想家 发表于 2021/09/29 01:01:56 2021/09/29
【摘要】         本篇博客,小菌为大家带来的是HDFS中NameNode的Fsimage与Edits的详解。 文章目录...

        本篇博客,小菌为大家带来的是HDFS中NameNode的Fsimage与Edits的详解。




        在之前的分享中,我们在谈到NameNode的作用时,有一个作用就是管理文件系统的元数据。接下来小菌将先为大家带来的是NameNode元数据解析的过程。

NameNode元数据解析

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加载到内存中,进行合并,合并后恢复完成

查看元数据目录的配置

先到达hadoop文件夹下
/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
查看hdfs-site.xml信息
vim /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>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

其中dfs.namenode.name.dir下的值为FSimage文件当中的文件信息路径,
        dfs.namenode.edits.dir下的值为editlog数据存放路径


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

提示: 需要使用命令 hdfs oiv

`切换到fsimage目录下`
cd  /export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas/current
`把目录下的fsimage文件转换成xml格式的文件输出`
hdfs oiv -i fsimage_0000000000000000864 -p XML -o hello.xml

  
 
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

1.不转换成xml文件直接打开

文件和环境一起出现乱码现象,当前会话无法使用,需要再重新克隆一个会话!
在这里插入图片描述

2.转换成xml文件打开

在这里插入图片描述

3.把转换后的xml文件上传到windows上打开

我们利用sz命令把linux上的文件上传到windows上,然后用浏览器打开。可以发现经过浏览器处理之后,xml整体结构看得更加清楚。
在这里插入图片描述


edits当中的文件信息查看

提示: 需要使用命令 hdfs oev

`切换到edits保存的目录下`
cd  /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits/current
`把目录下的edits文件转换成xml格式的文件输出`
hdfs oev -i  edits_0000000000000000865-0000000000000000866 -o myedit.xml -p XML

  
 
  • 1
  • 2
  • 3
  • 4

查看文件的方式与FSimage相似,这里不作过多介绍!


总结
1.Fsimage 记录HDFS文件系统的镜像或快照(周期性记录)(此文件相对较小)
2.Edits 记录客户端对进行的所有的增、删、改、追加等操作(没有使用Secondary NameNode之前,不是周期性生成)(此文件相对较大)
3.Fsimage Edits作用:用于还原集群上次关闭时的状态。还原时将两个文件加载到内存,检查、合并最终生成 一个新的Fsimage 。原本的Edits失效。

本次的分享就到这里了,小伙伴们有什么疑惑或好的建议可以积极在评论区留言,小菌后续还会推出HDFS系列的其他内容,希望大家持续关注小菌ヾ(๑╹◡╹)ノ"!


  往期内容回顾:
《HDFS文件系统介绍(1)》
《HDFS文件读写流程(2)》
《HDFS特性及缺点分析(3)》
《HDFS的高级命令使用——文件限额配置(4)》
《HDFS的安全模式与文件权限检验(5)》
《HDFS的shell常用命令大全》

文章来源: alice.blog.csdn.net,作者:大数据梦想家,版权归原作者所有,如需转载,请联系作者。

原文链接:alice.blog.csdn.net/article/details/102926214

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。