在故障转移过程中, Hadoop的ZKFC将负责在ANN< - >之间切换。 SNN。 但是在这个过程中有一个叫做fencing的步骤,以确保关闭ANN。
如果ANN的力量消失,并采用sshfence的默认策略。
“切换不会发生,因为人工神经网络中的ssh不起作用,从而影响了高可用性”
来自文档
“但是,当发生故障转移时,以前的Active NameNode仍然可以向客户端提供读取请求,这可能已过期,直到NameNode在尝试写入JournalNodes时关闭。因此,即使使用Quorum Journal Manager,仍然需要配置一些防护方法。“
答案 0 :(得分:0)
Hdfs配置允许使用多个fencing方法。
来自文档:
“为了做到这一点,您必须至少配置一个防护方法。这些方法被配置为一个回车分隔列表,将按顺序尝试,直到有人指示防护成功。”< / em>的
需要注意的重要一点是,这些方法应该实现某种超时机制或立即返回。最简单的方法是使用带有超时的 sshfence 和shell('/ bin / true')作为第二种方法(假设ANN已关闭)。示例:
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence\nshell(/bin/true)</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
当然,您可以编写更复杂的脚本来检查ANN是否已关闭。