hdfs namenode -format
格式化后会在hadoop.tmp.dir目录产生fsiamge文件
[zhangsan@node1 ~]$ cd /opt/bigdata/hadoop/default/dfs/name/current[zhangsan@node1 current]$ ll-rw-rw-r--. 1 zhangsan zhangsan 355 Apr 4 08:52 fsimage_0000000000000000000-rw-rw-r--. 1 zhangsan zhangsan 62 Apr 4 08:52 fsimage_0000000000000000000.md5-rw-rw-r--. 1 zhangsan zhangsan 2 Apr 4 08:52 seen_txid-rw-rw-r--. 1 zhangsan zhangsan 207 Apr 4 08:52 VERSION
接下来我们使用工具查看每个文件的内容。
Offline Image Viewer(oiv)是一个可以将hdfs的fsimage文件的内容转储为人类可读的格式的工具。支持多种Processor解析方式:Web processor, XML Processor, Delimited Processor, FileDistribution Processor等。
bin/hdfs oiv -p XML -i fsimage -o fsimage.xml
[zhangsan@node1 current]$ hdfs oiv -i fsimage_0000000000000000000 -p XML -o ~/fsimage_0000000000000000000.xml
fsimage_0000000000000000000.xml文件内容:
[zhangsan@node1 current]$ cat ~/fsimage_0000000000000000000.xml <?xml version="1.0"?> 1000 1000 0 1073741824 0 16385 16385 DIRECTORY 0 zhangsan:supergroup:rwxr-xr-x 9223372036854775807 -1 0 16385 0 0 1
[zhangsan@node1 current]$ hdfs oiv -i fsimage_0000000000000000000 -p FileDistribution -o ~/fsimage_0000000000000000000.fd
[zhangsan@node1 current]$ cat ~/fsimage_0000000000000000000.fd Processed 0 inodes.Size NumFilestotalFiles = 0totalDirectories = 1totalBlocks = 0totalSpace = 0maxFileSize = 0
[zhangsan@node1 current]$ hdfs oiv -i fsimage_0000000000000000000 -p Delimited -o ~/fsimage_0000000000000000000.delimited
[zhangsan@node1 current]$ cat ~/fsimage_0000000000000000000.delimited / 0 1970-01-01 08:00 1970-01-01 08:00 0 0 0 9223372036854775807 -1 rwxr-xr-x zhangsan supergroup
[zhangsan@node1 current]$ cat VERSION#Mon Apr 04 08:52:15 CST 2022namespaceID=1551467440clusterID=CID-18aaceee-980c-475a-8d3d-d59b7291541acTime=0storageType=NAME_NODEblockpoolID=BP-792177474-192.168.179.101-1649033535606layoutVersion=-63
[zhangsan@node1 current]$ cat seen_txid 0
edits文件中记录了HDFS的操作日志,现在HDFS中没有任何文件,我们创建文件夹/user/zhangsan,在创建文件前,先启动HDFS。
Offline Edits Viewer(oev)是一个用来解析Edits日志文件的工具。支持多种Processor解析方式:XML, stats等。
bin/hdfs oev -p xml -i edits -o edits.xml
[zhangsan@node1 current]$ hdfs oev -i edits_inprogress_0000000000000000001 -p XML -o ~/edits_inprogress_0000000000000000001.xml
[zhangsan@node1 current]$ cat ~/edits_inprogress_0000000000000000001.xml <?xml version="1.0" encoding="UTF-8"?> -63 OP_START_LOG_SEGMENT 1 OP_MKDIR 2 0 16386 /user 1649034484846 zhangsan supergroup 493 OP_MKDIR 3 0 16387 /user/zhangsan 1649034484856 zhangsan supergroup 493
[zhangsan@node1 current]$ hdfs dfs -put /opt/bigdata/hadoop/hadoop-2.7.3.tar.gz /user/zhangsan
<?xml version="1.0" encoding="UTF-8"?> -63 OP_START_LOG_SEGMENT 1 OP_MKDIR 2 0 16386 /user 1649034484846 zhangsan supergroup 493 OP_MKDIR 3 0 16387 /user/zhangsan 1649034484856 zhangsan supergroup 493 OP_ADD 4 0 16388 /user/zhangsan/hadoop-2.7.3.tar.gz._COPYING_ 3 1649035096135 1649035096135 134217728 DFSClient_NONMAPREDUCE_-297911069_1 192.168.179.101 true zhangsan supergroup 420 c2ab8d7c-26da-42c8-a479-121dc16a21aa 3 OP_ALLOCATE_BLOCK_ID 5 1073741825 OP_SET_GENSTAMP_V2 6 1001 OP_ADD_BLOCK 7 /user/zhangsan/hadoop-2.7.3.tar.gz._COPYING_ 1073741825 0 1001 -2 OP_ALLOCATE_BLOCK_ID 8 1073741826 OP_SET_GENSTAMP_V2 9 1002 OP_ADD_BLOCK 10 /user/zhangsan/hadoop-2.7.3.tar.gz._COPYING_ 1073741825 134217728 1001 1073741826 0 1002 -2 OP_CLOSE 11 0 0 /user/zhangsan/hadoop-2.7.3.tar.gz._COPYING_ 3 1649035103318 1649035096135 134217728 false 1073741825 134217728 1001 1073741826 79874467 1002 zhangsan supergroup 420 OP_RENAME_OLD 12 0 /user/zhangsan/hadoop-2.7.3.tar.gz._COPYING_ /user/zhangsan/hadoop-2.7.3.tar.gz 1649035103337 c2ab8d7c-26da-42c8-a479-121dc16a21aa 9
检查点是一个获取 fsimage和edit log并将它们压缩成新 fsimage 的过程。这样,NameNode可以直接从 fsimage加载最终状态到内存中,而不是重加载大量的的edit log。这是一种效率更高的操作,并减少了 NameNode 的启动时间。
创建新的 fsimage 是一项 I/O 和 CPU 密集型操作,有时需要几分钟才能执行。在检查点期间,NameNode还需要限制其他用户的并发访问。因此,HDFS 不是暂停活动的 NameNode 来执行检查点,而是将其推迟到 SecondaryNameNode 或备用 NameNode,具体取决于是否配置了 NameNode 高可用性(HA)。检查点的机制根据是否配置了 NameNode 高可用性而有所不同。
留言与评论(共有 0 条评论) “” |