Fsimage和Edits解析
ninehua 2025-01-09 15:14 34 浏览
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?
相关阅读:
相关推荐
- Windows 历代系统大合集,你用过几个
-
WINDOWS1.0(1985),第1代windows系统,感觉界面还不错。WINDOWS2.0(1987)。2代windows系统。感觉和一代相似度很高。WINDOWS98(1998)...
- 《英雄连2:完整合集》上架微软商城 登陆Windows 10、不支持中文
-
《英雄连2:完整合集(CompanyofHeroes2:CompleteCollection)》近日上架了微软商城,将于9月17日发售,登陆PC(Win10商城),不支持中文。《英雄连2:完整...
- 微软为 Android 用户打造了全家桶,一次推荐 80 多款 App
-
近日微软推出了一款名为MicrosoftApps的Android平台应用程序,这款程序并没有什么新的服务或功能,而是一个包括所有微软出品App的合辑,用户可以方便快捷地找到微软各种Ap...
- 微软愚人节大合集:MS-DOS移动、喵星人版Office
-
IT之家讯在2015年愚人节到临之际,微软发起一系列恶搞活动,包括新推出的MS-DOS移动系统和Surface智能手表,然而并不是所有的公司都庆祝愚人节。下面是微软愚人节专辑一起来看看吧。MS-DO...
- 老电脑救星!Win7系统DLL丢失修复方案
-
老电脑救星!Windows7系统DLL丢失一键修复方案老旧电脑升级困难,只能坚守Windows7?但安装后软件频繁报错“DLL丢失”,实在让人头疼!别担心,解决这类问题通常只需两步走,简单高效!在动...
- Windows11 IoT LTSC 2024 26100.4202 2in1 小修精简版 esd
-
特点描述小修Windows11LTSC2024精简版(小修精简Win11ltsc2024系统)小修Windows11IoTLTSC202426100.2314极限精简版[1.53G...
- 程序运行时缺少visual c++报错 微软常用运行库合集 2022.6.21
-
从网络下载的一些软件,在安装或者运行的时候,有许多的报错是,"MicrosoftVisualC++Runtime",这种错误提示是由于应用程序运行所需的VisualC++...
- Microsoft.NET离线运行库合集发布 2021
-
软件介绍.NET是微软具有战略意义的框架,也是装机必不可少的框架,想要一个一个安装略显繁琐,再加上很多电脑小白不知道怎么下载,不小心就下载到某某高速加载器,这个运行库极大解决了这个问题,采用微软官方....
- 养猪和鸡鸭鹅、兔子,菊苣可以作主食,可连续利用5-8年,成本低
-
养猪和鸡鸭鹅和兔子到底用什么牧草好呢?这个问题是很多养殖户朋友们想要了解的,那么,今天种子帮就给大家介绍一种,猪和鸡鸭鹅和兔子都比较爱吃的牧草,它就是菊苣。菊苣是属于菊科多年生作物,其多种优势备受养殖...
- 给兔喂草增加兔子肠胃蠕动#喂兔子
-
现在中午的时候准备给兔子加点小零食,直接在前院这边薅点草。这个草长得也是蛮长的了,直接薅掉喂兔子。像这种草兔子是特别爱吃的,但是现在为什么基本上不喂草了?因为现在很多地方像这种草已经没有了,但是我家门...
- 二年级看图写话范文—小白兔种菜(二年级看图写话小白兔种菜100字)
-
图中发生了什么事?小白兔在做什么呢?看图,想一想,写下来。例文1、勤劳的小白兔一、早晨,太阳公公起来了,阳光明媚。一只小兔很早就起床了,拿着锄头,来到田地里,开始锄地。到中午的时候,天气很热,小兔满头...
- 真刑,又有博主采挖“青藏雪莲花”!5-7年开花一次,开完就死亡
-
先是有网红“提子”为搏眼球,非法水煮和烧烤国家二级保护动物“噬人鲨”。现如今又出了一个主播非法采挖国家二级保护植物“水母雪兔子”,一名主播在短视频平台上发布了一段视频,视频中主播正在展示自己发现了一株...
- 每天认识一种植物:火星兔子(火星兔子app现状)
-
每天认识一种植物,让生活增添一点乐趣。今天要带大家认识的是——火星兔子。火星兔子是景天科青锁龙属多肉植物,植株群生,肉质叶呈莲座状排列,叶色灰绿,如果光照强烈则为绿褐色或红褐色,叶表有凸起的白色疣突,...
- 大姐用它养兔子草质鲜嫩,适口性好,种一次可利用6-7年
-
大姐养兔子种子几亩地的它,叶片多维生素含量高,低蛋白可以做兔子的主草,又可促进兔子的肠胃蠕动,而且兔子吃了也不会拉稀。那么今天就为大家介绍一下大姐到底种的是什么草?提摩西又叫猫尾草,梯牧草,禾本科多年...
- 小说:捡到会说话的兔子,还有一颗能给兔子安全感的蛋?
-
等叶古香回到家,已经准备做饭菜了,曾氏看闺女把猪大肠洗得确实干净,闻了闻,没有味道,也不再管她。叶静香知道这个堂妹竟然要吃猪大肠,嫌弃得很,厨房也不进,直接回房。因为她和唐氏做绣活,也不需要她做饭。不...