hadoop_book/common/zk_failover.md

1.2 KiB
Raw Permalink Blame History

简介

HDFS的NameNode、Yarn的ResourceManager都是依靠ZK实现主备倒换的。核心的类为ZKFailoverController.java, 选举的核心类为ActiveStandbyElector.java

主备选举

主备选举的核心类是ActiveStandbyElector。在初始化的时候需要创建zk连接并且尝试在zk上面创建文件。在创建连接或者创建文件的时候都会有回调事件。

回调处理的函数主要包含:

创建node节点回调

入口函数如下:

public synchronized void processResult(int rc, String path, Object ctx,
      String name) {
// .....
}

处理流程图如下:

zk_failver_001

监控回调

入口函数如下:

public synchronized void processResult(int rc, String path, Object ctx,
      Stat stat) {
// ...
}

处理流程如下:

zk_failver_003

事件回调

入口函数如下:

synchronized void processWatchEvent(ZooKeeper zk, WatchedEvent event) {
 // ..
}

zk_failver_002