Fsimage和EditLog的合并过程

在HDFS中,有三个重要节点:

  1. NameNode的作用是维护和管理Fsimage和EditLog,进而实现对文件系统树和树下的所有目录以及文件的维护
  2. SecondaryNameNode的作用是为namenode创建检查点的同时自身保留一份数据, 也就是namenode的备份节点 , 以便于namenode后期的数据恢复
  3. DataNode用来存储和执行数据,并定期向namenode汇报自身所有的block

Fsimage与EditLog的合并过程:

  1. SecondaryNamenode通过周期性(五分钟)以GetEditLog方法来获取EditLog的文件大小, 当大小满足合并时, 通过RollEditLog方法进行合并
  2. Namenode停止使用EditLog,并生成临时节点Edit.new文件
  3. SecondaryNamenode 通过namenode内建的Http服务器 , 以Get方式获取namenode的Fsimage和EditLog文件(Get方法带有携带者Fsimage和EditLog路径)
  4. SecondaryNamenode 载入Fsimage,并按照EditLog文件内容注意执行操作
  5. 当更新写入操作完毕后 , 通过Http请求方式告诉namenode合并完成 ,这时namenode会通过Http get方式获取新的Fsimage文件
  6. namenode中的检查节点更新时间随之变化, 更改文件名为Fsimage文件
  7. namenode还将Edit.new文件名更改为Edit

整体来看,namenode,secondarynamenode,datanode三者各自的职责与相互协调的运作方式:

namenode用来维护自身存储的所有目录和文件,同时数据更新操作实时进行,
secondarynamenode与之配合,尽量保证服务器在宕机的情况下能够完成重启后数据的快速恢复 , 减少因为意外情况导致的数据丢失.
datanode则是树下的一个操作运转存储的数据节点 , 不定时的向namenode汇报自身block数量,内容的变化 ,
来辅助EditLog操作指令对Fsimage更新的进程.

发布了6 篇原创文章 · 获赞 7 · 访问量 153

猜你喜欢

转载自blog.csdn.net/weixin_45678465/article/details/105307492
今日推荐