本文章主要介绍名字节点元数据的存储目录结构,以及每个文件的基本内容。
一 目录结构图
NameNode 的元数据存储目录结构:
二 文件基本介绍
current目录为当前集群正在使用的目录,previous目录是版本升级之前的目录。版本进行回滚的时候,previous目录就会发挥作用。
我们首先了解一下transactionId的概念。当客户端没发起一次RPC请求对NameNode的名字空间进行修改后,NameNode会用一个唯一的transactionId标识。
①VERSION : 版本号、集群号、创建时间、类型等。
②edits_start ID-end ID : edits文件中存放的是客户端执行的所有更新命名空间的操作。每个edits文件都包含了文件名中start transaction id - end transaction id之间的所有事务。
③edits_inprogress__start transaction ID : 正在被追加的日志。所有从transaction id开始的新的修改操作都会被记录在此文件中,直到HDFS重置(roll)这个日志文件。
④fsimage_end transaction ID : Hadoop文件系统元数据的一个永久的检查点,包含了end transaction id之前的完整的HDFS名字空间元