说明:
本章节主要介绍HDFS的元数据管理,以及重做 fsimage的操作流程。
问题描述
由于standby nn full gc导致服务不可用,尝试重启了standby nn时发现了 standby 无法启动的问题。
原因分析:
问题的根本原因是由于 active nn 与 standby nn 同步 edit 出现异常
问题的触发原因追溯到 editlog 同步异常,时间点:18:27发现在 ambari 中同时进行了三台 jn 的重启。
知识铺垫:元数据管理
Namenode对元数据的管理采用了三种形式:
- 内存元数据:基于内存存储元数据,元数据比较完整
- fsimage文件:磁盘元数据镜像文件,在NameNode工作目录中,它不包含block所在的Datanode 信息
- edits文件:数据操作日志文件,用于衔接内存元数据和fsimage之间的操作日志,可通过日志运算出元数据
这里简单梳理几点注意点
:
当客户端对hdfs中的文件进行新增或修改时,操作记录首先被记入edit日志文件,并非直接合并fsimage,这里一个关键组件就是JournalNode