- Secondry NameNode每个周期(15min)询问Edit文件的大小。
- 当Edit文件达到合并阈值时,namenode停止使用Edit文件,并建立一个Edit.new的新文件。
- Secondary NameNode通过get请求得到fsimage文件和edit文件,执行edit文件中的操作,结果存入新的fsimage文件。
- 合并完成后通知namenode,namenode发送post请求,得到合并后的fsimage文件,并将其重命名。
- 将edit.new文件更名为edit文件。
secondary namenode可以在namenode宕机后,根据自己的这份fsimage文件对其进行恢复,所以需要将其另部一台机器。
另外:
datanode和namendoe通过心跳机制保持联系,datanode每3s向name发送一次数据信息,如果超过3s NameNode没有收到datanode发来的心跳,就会将这个节点的数据向其他节点拷贝一份。