Zookeeper HA原理
Zookeeper实现集群HA的原理有两种,以Hadoop举例:
第一种:
两个NameNode同时向zk注册同一个临时目录,注册成功的为主节点,不成功的监控这个节点;如果主节点挂掉了,那么这个临时目录就消失了,这时候从节点监控到就可以重新注册这个目录,变身为从节点;当失败的主节点恢复后,发现这个临时目录已经存在,就会像之前的从节点一样监控这个节点,变为从节点。
第二种:
两个NameNode向zk某个目录下同时注册临时序列化目录;然后两个节点把注册的两个临时序列化目录读取下来进行比较,谁是较大的谁就是主节点;当主节点挂掉后,从节点监控目录子节点目录的变化,判断自己是不是 大的节点,从而决定是否自切换为主节点;失败的主节点重启后,会重新注册临时序列化节点,重复上面的步骤即可。