Fsimage和Edits解析
ninehua 2025-01-09 15:14 2 浏览
1、概念
NameNode被格式化之后,将在/opt/module/hadoop-2.7.2/datatmp/dfs/name/current目录中产生如下文件
fsimage_0000000000000000000
fsimage_oo00000000000000000 . md 5seen_txid
VERSION
(1) Fsimage文件: HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息。
(2)Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits文件中。
(3 ) seen_txid文件保存的是一个数字,就是最后一个edits_的数字
(4))每次NameNode启动的时候都会将Fsimage文件读入内存,加载Edits里面的更新操作,保证内存中的元数据信息是最新的、同步的,可以看成NameNode启动的时候就将Fsimage和Edits文件进行了合并。
2. oiv查看Fsimage文件
(1)查看oiv和oev命令
[atguigu@hadoop102 current]$ hdfs
oiv apply the offline fsimage viewer to an fsimage
oev apply the offline edits viewer to an edits file
(2)基本语法
hdfs oiv -p 文件类型 -i镜像文件 -o 转换后文件输出路径
(3)案例实操
[atguigu@hadoop102 current]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs/name/current
[atguigu@hadoop102 current]$ hdfs oiv -p XML -i fsimage_0000000000000000025 -o /opt/module/hadoop-2.7.2/fsimage.xml
[atguigu@hadoop102 current]$ cat /opt/module/hadoop-2.7.2/fsimage.xml
将显示的xml文件内容拷贝到Eclipse中创建的xml文件中,并格式化。部分显示结果如下。
将显示的xml文件内容拷贝到Eclipse中创建的xml文件中,并格式化。部分显示结果如下。
<inode>
<id>16386</id>
<type>DIRECTORY</type>
<name>user</name>
<mtime>1512722284477</mtime>
<permission>atguigu:supergroup:rwxr-xr-x</permission>
<nsquota>-1</nsquota>
<dsquota>-1</dsquota>
</inode>
<inode>
<id>16387</id>
<type>DIRECTORY</type>
<name>atguigu</name>
<mtime>1512790549080</mtime>
<permission>atguigu:supergroup:rwxr-xr-x</permission>
<nsquota>-1</nsquota>
<dsquota>-1</dsquota>
</inode>
<inode>
<id>16389</id>
<type>FILE</type>
<name>wc.input</name>
<replication>3</replication>
<mtime>1512722322219</mtime>
<atime>1512722321610</atime>
<perferredBlockSize>134217728</perferredBlockSize>
<permission>atguigu:supergroup:rw-r--r--</permission>
<blocks>
<block>
<id>1073741825</id>
<genstamp>1001</genstamp>
<numBytes>59</numBytes>
</block>
</blocks>
</inode >
思考:可以看出,Fsimage中没有记录块所对应DataNode,为什么?
在集群启动后,要求DataNode上报数据块信息,并间隔一段时间后再次上报。
3. oev查看Edits文件
(1)基本语法
hdfs oev -p 文件类型 -i编辑日志 -o 转换后文件输出路径
(2)案例实操
[atguigu@hadoop102 current]$ hdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop-2.7.2/edits.xml
[atguigu@hadoop102 current]$ cat /opt/module/hadoop-2.7.2/edits.xml
将显示的xml文件内容拷贝到Eclipse中创建的xml文件中,并格式化。显示结果如下。
<?xml version="1.0" encoding="UTF-8"?>
<EDITS>
<EDITS_VERSION>-63</EDITS_VERSION>
<RECORD>
<OPCODE>OP_START_LOG_SEGMENT</OPCODE>
<DATA>
<TXID>129</TXID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ADD</OPCODE>
<DATA>
<TXID>130</TXID>
<LENGTH>0</LENGTH>
<INODEID>16407</INODEID>
<PATH>/hello7.txt</PATH>
<REPLICATION>2</REPLICATION>
<MTIME>1512943607866</MTIME>
<ATIME>1512943607866</ATIME>
<BLOCKSIZE>134217728</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-1544295051_1</CLIENT_NAME>
<CLIENT_MACHINE>192.168.1.5</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS>
<USERNAME>atguigu</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE>
</PERMISSION_STATUS>
<RPC_CLIENTID>908eafd4-9aec-4288-96f1-e8011d181561</RPC_CLIENTID>
<RPC_CALLID>0</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ALLOCATE_BLOCK_ID</OPCODE>
<DATA>
<TXID>131</TXID>
<BLOCK_ID>1073741839</BLOCK_ID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_SET_GENSTAMP_V2</OPCODE>
<DATA>
<TXID>132</TXID>
<GENSTAMPV2>1016</GENSTAMPV2>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ADD_BLOCK</OPCODE>
<DATA>
<TXID>133</TXID>
<PATH>/hello7.txt</PATH>
<BLOCK>
<BLOCK_ID>1073741839</BLOCK_ID>
<NUM_BYTES>0</NUM_BYTES>
<GENSTAMP>1016</GENSTAMP>
</BLOCK>
<RPC_CLIENTID></RPC_CLIENTID>
<RPC_CALLID>-2</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_CLOSE</OPCODE>
<DATA>
<TXID>134</TXID>
<LENGTH>0</LENGTH>
<INODEID>0</INODEID>
<PATH>/hello7.txt</PATH>
<REPLICATION>2</REPLICATION>
<MTIME>1512943608761</MTIME>
<ATIME>1512943607866</ATIME>
<BLOCKSIZE>134217728</BLOCKSIZE>
<CLIENT_NAME></CLIENT_NAME>
<CLIENT_MACHINE></CLIENT_MACHINE>
<OVERWRITE>false</OVERWRITE>
<BLOCK>
<BLOCK_ID>1073741839</BLOCK_ID>
<NUM_BYTES>25</NUM_BYTES>
<GENSTAMP>1016</GENSTAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>atguigu</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE>
</PERMISSION_STATUS>
</DATA>
</RECORD>
</EDITS >
思考:NameNode如何确定下次开机启动的时候合并哪些Edits?
相关阅读:
相关推荐
- 新发现一款可以免费使用的虚拟机管理软件
-
1.背景做后端开发和做DBA的同学,由于开发和测试需要,经常会创建一些虚拟机,有时是不同的操作系统,有时候是跨CPU架构的,这时候有一款好用的虚拟机管理软件就显得尤为重要。当然对于企业来说,需要管理...
- kvm快速入门,在rockylinux9上搭建kvm虚拟化
-
本文主要介绍kvm的部署和使用,演示环境为rockylinux9,通过本文你可以了解kvm的使用,快速上手kvm虚拟化。kvm介绍kvm是一个基于linux内核的开源全虚拟化方案。允许在linux主机...
- Fsimage和Edits解析
-
1、概念NameNode被格式化之后,将在/opt/module/hadoop-2.7.2/datatmp/dfs/name/current目录中产生如下文件fsimage_000000000000...
- 「Windows篇」 11款免费看图软件推荐
-
虽然Windows系统自带了看图软件,不过支持的格式少、功能比较少,对于图片浏览要求高的用户来说,不能满足。所以本文给大家汇总了目前网上大家推荐的免费看图软件,基本上分两大类,浏览为主、图片管理。...
- FIV - 体积小巧功能强大的看图软件
-
FIV是一款...
- 超棒的一款电脑看图软件,支持打开任意格式的图片
-
之前小佳和大家分享过一个事情,为了下载一款看图软件,最后导致电脑浏览器被劫持,用了好多方法才解决掉,所以能下纯净版就不下别的。今天分享的是一款Windows端的看图软件,提到看图软件,目前小佳接触的就...
- 七彩虹GTX750超频实战
-
2014-07-1605:01:00作者:姜梦雨涡轮增压的概念一直是在汽车中的一个词汇,是提升马力最直接有效的方法之一,在不修改发动机配置的情况下,涡轮增压可以让汽车拥有更高的动力输出。相对显卡而...
- 电脑蓝屏怎办,学会自己分析,推荐3个软件
-
最近碰到一台电脑老是没有规律的蓝屏,用360修复蓝屏后还是没解决,开始怀疑驱动问题,官方下载重装了各种驱动,问题依旧。甚至怀疑是win10版本问题,与硬件不兼容,重装了多个win10版本,问题还是没...
- 我的新年装机梦
-
作者:买买买剁灬一、导读一、导读二、选购心路历程(feihua)三、配置四、小白傻的装机晒五、Z170上win7六、负载测试二、选购心路历程(feihua)从高中开始,就深深的中了电脑DIY的毒,梦...
- iGame RTX 4070 SUPER评测:高颜值硬装,5千档佳选
-
NVIDIAGeForceRTX40SUPER系列台式机显卡第1弹RTX4070SUPER现已解禁,4K游戏基本无压力,生产力性能也很不错,可以说RTX4070SUPER是一款性能非常...
- 索泰RTX 4080 SUPER PGF OC评测:2655MHz极速出击,带你畅玩4K游戏
-
NVIDIAGeForceRTX4080SUPER显卡于今年1月份登场。时隔不到两个月,不少品牌的RTX4080SUPER均拥有一定的价格降幅,现在入手更加便宜,值得追求高性能的用户们关注...
- RTX 4060 Ti 8G首测 DLSS3加持下的甜品光追卡
-
NVIDIAGeForceRTX4060Ti8G已经发布,作为用户关注比例最多的入门或者主流级别产品,RTX4060Ti8G显卡国内定价3199元起,对于装机预算6000元左右的玩家来...
- 四年半后,下载机大升级
-
时间如流水,感情也如流水,哗哗响两声就过去了。正是因为那年那月那夏正是一个风雨雷电交加的台风季节,所以印象极其深刻。而今天本文的重点,新升级下载机的前身,也是在那锅风雨雷电交加的季节给配出来的!至于配...
- 80%的“高手”都错了!去伪存真,暑期游戏本降温正解手册
-
无论是普通的轻薄本,MX轻便本,还是GTX游戏本,降温需求始终存在!而到了暑期,大量学生终于有空畅玩游戏了,游戏本的降温需求也就立马凸显了,购机帮你评后台咨询散热垫、散热器的读者也明显多了起来。另外,...