Namenode,Datanode,SecondaryNamenode的文件结构
NameNode
1.NameNode的文件结构
//中间省略很多行
分析:从上图可以看出,NameNode的文件结构包含edits、fsimage、seen_txid、VERSION
edits
-
编辑日志(edit log):当客户端执行写操作时,首先NameNode会在编辑日志中写下记录,并在内存中保存一个文件系统元数据,这个描述符会在编辑日志改动之后更新。
所有对HDFS的写操作都会记录在此文件中
simage
文件系统镜像(fsimage):文件系统元数据的持久检查点,包含以序列化格式存储的文件系统目录和文件inodes,每个inodes表征一个文件或目录的元数据信息以及文件的副本数、修改和访问时间等信息。
een_txid
seen_txid是存放transactionId的文件,format之后是0,它代表的是namenode里面的edits_*文件的尾数,namenode重启的时候,会按照seen_txid的数字,循序从头跑edits_0000001~到seen_txid的数字。
当hdfs发生异常重启的时候,一定要比对seen_txid内的数字是不是你edits最后的尾数,不然会发生建置namenode时metaData的资料有缺少,导致误删Datanode上多余Block的资讯。
VERSION
- VERSION文件是java属性文件,保存了HDFS的版本号。
• clusterID是系统生成或手动指定的集群ID
• cTime表示NameNode存储时间的创建时间,升级后会更新该值。
• storageType表示此文件夹中保存的是元数据节点的数据结构。
• blockpoolID:针对每一个Namespace所对应blockpool的ID,该ID包括了其对应的NameNode节点的ip地址。
• layoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号。
SecondaryNameNode的文件结构
分析:从上图可以看出,SecondaryNameNode主要包括edits、fsimage、VERSION
DataNode的文件结构
分析:从上图可以看出,.DataNode的文件结构主要由blk_前缀文件、BP-random integer-NameNode-IP address-creation time和VERSION构成。