HDFS永久性数据结构
- 深入了解 主namenode、辅助namenode、datanode 等HDFS组件如何在磁盘中组织永久性数据,洞悉各文件的用法有助于故障诊断和故障检出。
格式化:只会产生name文件,data与namesecondary是在上传到hdfs上时创建的,无须另外格式化。
namenode目录结构在namenode/current下
- VERSION下的文件:
- namespaceID:命名空间的唯一标识符。
- clusterID:集群ID (一个集群有多个命名空间组成) 。
- cTime:标记namenode创建的时间,文件系统更新后会更新到新的时间戳。
- storageType 属性说明:存储结构是namenode的数据结构。
- blockpoolID=块池唯一的标识符。
- layoutVersion:是一个负整数,描述HDFS持久性数据结构(布局)的版本。
编辑日志:
客户端在执行写操作时(创建或移动文件)或者修改时,会把这些事务写入编辑日志中。
编辑日志实际上在磁盘是有多个文件的,以edits_开头(可以有多个),任一时刻只有一个文件处于打开状态,以edits_inprogress_开头(只能有一个)。
映像:是文件系统元数据的一个完整性的永久性检查点(checkpoint)
(用来重构元数据的最近状态)
主namenode 与 辅助namenode的关系与相互作用
问题:辅助namenode是否能取代主namenode?
答:不能,辅助namenode没有edits_inprogress_*正在编辑的日志,也没用存储edits_inprogress_*尾数的seen_txid文件。
datanode的目录结构
datanode与namenode不同的是,datanode的存储目录是初始化阶段自动创建的,不需要额外格式化。