HDFS NameNode Startup Progress 启动进度页面解析

在这里插入图片描述
这是 Hadoop3.1.3 NameNode WebUI(9870端口)的启动进度页面
整体耗时33秒,进度100%,完整展示NameNode启动四大阶段
加载fsimage → 回放edits日志 → 保存checkpoint → 进入安全模式。

逐行解读页面各个Phase

1. Loading fsimage(加载元数据快照)

Loading fsimage /opt/module/hadoop‑3.1.3/data/name/current/fsimage_0000000000000006190 13.23 KB
erasure coding policies (0/0)
inodes (167/167)
delegation tokens (0/0)
cache pools (0/0)
  1. fsimage_0000000000000006190:FsImage元数据镜像文件,大小13.23KB,保存某时刻HDFS完整目录、权限、文件元信息。
  2. inodes (167/167):inode代表HDFS里面的文件+目录,一共167个,全部加载完成。
  3. erasure coding policies:纠删码策略,0代表没有配置纠删码,使用默认副本机制。
  4. delegation tokens:代理令牌,用于认证,0个。
  5. cache pools:缓存池,未配置。

FsImage不包含启动之后的增量修改,增量操作保存在edits文件。

2. Loading edits(回放EditLog增量操作日志)

Loading edits
/opt/module/hadoop‑3.1.3/data/name/current/edits_0000000000000006191‑0000000000000006288 1 MB (98/98)
  • edits_xxxx‑xxxx:EditLog编辑日志,记录从上一次fsimage生成之后,所有增、删、改HDFS的操作。
  • 文件大小1MB,共98条操作记录,全部回放完毕(98/98)

NameNode启动流程:先加载fsimage,再逐条回放edits日志,还原出集群最新元数据。

3. Saving checkpoint(执行Checkpoint,生成新fsimage)

Saving checkpoint
erasure coding policies /opt/module/hadoop‑3.1.3/data/name/current/fsimage.ckpt_0000000000000006288 (0/0)
inodes /opt/module/hadoop‑3.1.3/data/name/current/fsimage.ckpt_0000000000000006288 (0/0)
delegation tokens /opt/module/hadoop‑3.1.3/data/name/current/fsimage.ckpt_0000000000000006288 (0/0)
cache pools /opt/module/hadoop‑3.1.3/data/name/current/fsimage.ckpt_0000000000000006288 (0/0)

回放完edits日志之后,NameNode把合并后的完整元数据输出新的镜像fsimage.ckpt_0000000000000006288,写入磁盘。

这就是Checkpoint机制,由SecondaryNameNode触发(HA环境由Standby NameNode执行),生成新fsimage,清空旧edits日志。

4. Safe mode(安全模式)

Safe mode
awaiting reported blocks (51/51)
  • 安全模式:NameNode启动后的保护状态
  • awaiting reported blocks (51/51):等待DataNode上报所有数据块信息。总共有51个数据块,全部上报完成
  • 当满足:块上报达到阈值比例,安全模式自动退出,集群提供读写服务。

安全模式下:只能读,不能写、不能删除文件

FsImage + EditLog + SecondaryNameNode 对应关系

NameNode启动加载

逐条回放

Checkpoint

磁盘FsImage

内存元数据

磁盘EditLog

生成新FsImage.ckpt写到磁盘

  1. 启动:加载fsimage + 回放edits → 内存得到完整元数据
  2. 做完checkpoint,输出新fsimage,edits日志重新从零开始记录
  3. 然后等待DataNode上报block,退出安全模式,对外提供服务。

关键知识点

  1. NameNode启动两大核心文件:fsimage(元数据快照)、edits(增量操作日志)
  2. inodes数量代表HDFS文件+目录总数量;
  3. safe mode安全模式,等待DataNode上报block;awaiting reported blocks(51/51)代表全部块上报完成;
  4. 安全模式手动命令:
    # 查看安全模式状态
    hdfs dfsadmin -safemode get
    # 手动退出安全模式
    hdfs dfsadmin -safemode leave
    
  5. 这个页面路径:http://node1:9870/dfshealth.html#startup-progress

更多推荐