元数据三种形式
- 内存元数据(meta data)
- 磁盘元数据镜像文件(fsimage)
- 数据操作日志文件(edits)
元数据存储机制
- 内存中有一份完整的元数据(meta data)
- 磁盘中有一份“准完整”的元数据镜像文件(fsimage),存在namenode工作目录中
- meta data = fsimage + 操作日志文件(edits)
- 当客户端对hdfs进行操作,操作记录首先被记入edits日志文件中,当客户端操作成功后,再更新到meta data
元数据存储流程
- 客户端操作hdfs
- hdfs将用户的操作日志保存在edits,每份edits有固定大小,达到大小后保存成文件tmp/dfs/name/current/edits_0000000000000000881-0000000000000000882
- 正在记录的未达到固定大小的edits文件,保存为文件edits_inprogress_0000000000000000892
- 按一定触发条件,会由SecondaryNameNode将所有edits和一个最新的fsimage(第一次需要)下载到SecondaryNameNode本地,并加载到内存进行merge,生成一个新的fsimage这个过程叫checkpoint
- SecondaryNameNode将新生成的fsimage覆盖到原来的镜像文件