启动:
Namenode启动时,会先将镜像文件载入到内存,并执行编辑日志中的各项操作。一旦在内存中成功建立文件系统元数据的镜像,则创建一个新的fsimage文件,和一个空的编辑日志。此时namenode开始监听DataNode请求,此时namenode处于安全模式,
系统中的数据块位置并不是由namenode维护的,而是以块列表的形式存储在DataNode中,在操作期间,namenode会在内存中保留所有快位置的映射信息,安全模式下,各个DataNode会向namenode发送最新额块列表信息,namenode了解到足够多的块位置信息之后,即可高效运行文件系统。(满足最小副本条件)
2:第一阶段:
(1)第一次启动namenode格式化,创建hdfs镜像文件fsimage和编辑日志文件edits。如果不是第一次启动,直接加载编辑日志和镜像文件到内存
(2)客户端对原数据进行增删改查的请求
(3)namenode记录操作日志,更新滚动日志
(4)namenode在内存中对数据进行增删改查
3:第二阶段:Secondary namenode工作
(1)secondary namenode 询问namenode是否需要checkpoint。直接带回namenode是否检查结果
(2)secondary namenode请求执行checkpoint
(3)namenode滚动正在写的edits日志,将当前edits.inprogress往edits写入
(4)将滚动前的编辑日志和镜像文件拷贝到secondary namenode
(5)secondary namenode将编辑日志和镜像文件加载到内存并合并
(6)生成镜像文件fsimage.checkpoint
(7)拷贝fsimage.checkpoint到namenode
(8)namenode将fsimage.checkpoint重新命名为fsimage
NameNode和Secondary NameNode工作机制
最新推荐文章于 2022-08-24 09:17:31 发布