码迷,mamicode.com
首页 > 其他好文 > 详细

SNN 合并流程

时间:2019-06-11 22:17:14      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:sof   ace   文件   命名   play   存储   最新   hdfs   没有   

  SNN是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间,SNN进程默认运行在 namenode 机器上,如果这台机器出错,宕机,对恢复HDFS文件系统是很大的灾难,因此最佳方式是将SNN进程配置在另外一台机器上运行。

  在hadoop中,namenode负责对HDFS的metadata的持久化存储,并且处理来自客户端的对HDFS的各种操作的交互反馈。为了保证交互速度,HDFS文件系统的metadata是被load到namenode机器的内存中的,并且会将内存中的这些数据保存到磁盘进行持久化存储。为了保证这个持久化过程不会成为HDFS操作的瓶颈。

  hadoop采取的策略是:把HDFS最近一段时间的操作保存到namenode中的一个叫Editlog的文件中去。当重启namenode时,除了load fslmage之外,还会对这个Editlog文件中记录的HDFS操作进行replay,以恢复HDFS重启之前的最终状态。 而SecondaryNameNode,会周期性地将Editlog中记录的对HDFS的操作合并到一个checkpoint中,然后清空 Editlog。所以namenode的重启就会Load最新的一个checkpoint,并replay Editlog中记录的hdfs操作,由于Editlog中记录的是从上一次checkpoint以后到现在的操作列表,所以就会比较小。如果没有snn 的这个周期性的合并过程,那么当每次重启namenode的时候,就会花费很长的时间。而这样周期性的合并就能减少重启的时间。同时也能保证HDFS系统的完整性。这就是SecondaryNameNode所做的事情。所以SNN并不能分担namenode上对HDFS交互性操作的压力。尽管如此,当namenode机器宕机或者namenode进程出问题时,namenode的daemon进程,可以通过人工的方式从snn上拷贝一份metadata 来恢复HDFS文件系统.

  SNN工作原理:

  1、SecondaryNameNode通知NameNode准备提交edits文件,此时namenode节点产生edits.new

  2、SecondaryNameNode通过http get方式获取NameNode的fsimage与edits文件(在SecondaryNameNode的current同级目录下可见到 temp.check-point或者previous-checkpoint目录,这些目录中存储着从namenode拷贝来的镜像文件)。

  3、SecondaryNameNode开始合并获取的上述两个文件,产生一个新的fsimage文件fsimage.ckpt 4、SecondaryNameNode用http post方式发送fsimage.ckpt至NameNode 5、NameNode将fsimage.ckpt与edits.new文件分别重命名为fsimage与edits,然后更新fstime,整个checkpoint过程到此结束。

SNN 合并流程

标签:sof   ace   文件   命名   play   存储   最新   hdfs   没有   

原文地址:https://www.cnblogs.com/xiangyuguan/p/11006253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!