Hadoop HA关机无法自动切换,如何解决?

我用3台机器搭建了Hadoop HA集群,用ZooKeeper实现自动切换NameNode。
ZooKeeper集群由master、slave1、slave2 三台机器组成。master、slave1是NameNode。3台机器中的进程如图:

img

假设现在master机的NameNode是active状态,slave1机的NameNode是standby状态。当我用kill杀死master机的NameNode后,slave1机自动切换active,这种情况自动切换是正常的。

但我如果直接关掉master机,slave1机就不会自动切换,它会一直保持standby状态。这时再开启master机(只是开机,没有运行任何hadoop相关进程),slave1机就自动切换active。
请问为什么关闭机器不会自动切换NameNode状态呢?

master机器关机了,slave1机器没法知道master的NameNode是不是真的挂了。
如果salve1切换正active会有可能出现两个active的情况,这种情况比没有active会更加严重

img

这得看NN、ZKFC、ZK的日志呀,可能的情况太多了。。。。