NameNode采用HA架构部署,在Standby切换为Active的过程中存在一个fence阶段,如果该阶段不返回true,则无法继续往下进行,即无法完成failover。
该行为由dfs.ha.fencing.methods决定,默认为sshfence。
1 | <property> |
但是这样配置存在问题,当Active宕机,ssh无法完成,sshfence阶段实际上会循环重试,始终无法完成failover。
由于没有直接关于fence retry次数的参数配置,采取如下变通方案:配置4个fence method,3次sshfence,1次shell(/bin/true),可以保证在3次sshfence失败之后结束fence阶段,完成failover。