image文件系统
(Image文件)
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]$ hdfsoiv apply the offline fsimage viewer to an fsimageoev 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>
;f