checkpointing过程 机制
即secondarynamenode怎么工作的,做什么工作的.
NameNode和SecondaryNamenode对fsimage与edits的操作
请大家看完指正!!! 肯定有不对的地方,感谢!
个人理解:
1.刚开启服务,namenode主动将edits和fsimage合并。
2.SecondaryNamenode刚开启不做操作,它是namenode的助理,与namenode不在同一台机器。
SecondaryNamenode还是namenode的冷备份(并不是实时的备份 当secondarynamenode拉取edits和fsimage进行合并时,namenode在这个时间段可能会进行日志写操作, 此时会写到临时日志去,
等secondarynamenode拉取完之后再放到日志存放目录下)
3.SecondaryNamenode在源码中默认每隔一个小时去namenode拉取fsimage和edits做合并,
做完合并出来一个新的fsimage(好像是用的别名fsimage.bak类似),
发送到namenode并且保存到本地(secondarynamendoe的节点也会保存一份fsimage),
发送到namenode的fsimage.bak 会替换原来的比较旧的fsimage (namenode中存储了两份fsimage )。
4.另外一种情况 在一个小时内操作日志次数达到一百万次 (secondarynamenode默认是60秒去问询次namenode是否需要合并操作 其实就是去看次数达到了多少) secondarynamenode也会进行edits和fsimage合并操作,并且重新计时。
其中:冷备份和热备份:
热备份:有两个 NameNode 同时工作,其中一台机器处于 active 状态,另一台机器处于 standby 状态。
两个节点数据是即时同步的,起同步作用的进程是 JournalNode。
冷备份:相当于 SecondaryNameNode。