大家都知道,在hadoop1.x中由SecondaryName负责fsimage和edits文件的合并,但是由于SecondaryName不支持namenode的热备份,会造成hdfs的单点故障问题,在hadoop2.x中已被弃用.
那么在hadoop2.x中的hadoop-ha由谁来合并fsimage和edits呢?
答案是StandybyNameNode.
1 首先edits文件会同步到JournalNodes节点的共享目录,StandbyNameNode同步edits文件到自己的目录中.
2 完成一定的操作数或者经过一定的时间后(具体值可以配置),StandbyNameNode节点会触发其上CheckpointerThread线程的checkpoint操作,合并fsimage和edits文件.
3 合并完成得到新得fsimage文件会被上传到ActiveNameNode相应目录,并清理掉旧的fsimage和edits文件.
至此,合并结束.
附录:
CheckPoint条件设置
(1)通常情况下,SecondaryNameNode每隔一小时执行一次。
[hdfs-default.xml]
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
</property>
(2)一分钟检查一次操作次数,当操作次数达到1百万时,SecondaryNameNode执行一次checkpoint操作。
[hdfs-default.xml]
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
<description>操作动作次数</description>
</property>
<property>
<name>dfs.namenode.checkpoint.check.period</name>
<value>60</value>
<description> 1分钟检查一次操作次数</description>
</property >