hadoop 主備倒換控制器:ZKFailoverController詳解
簡(jiǎn)介
HDFS的NameNode、Yarn的ResourceManager都是依靠ZK實(shí)現主備倒換的。核心的類(lèi)為:ZKFailoverController.java,
選舉的核心類(lèi)為ActiveStandbyElector.java
主備選舉
主備選舉的核心類(lèi)是ActiveStandbyElector。在初始化的時(shí)候需要創(chuàng )建zk連接并且嘗試在zk上面創(chuàng )建文件。在創(chuàng )建連接或者創(chuàng )建文件的時(shí)候都會(huì )有回調事件。
回調處理的函數主要包含:
創(chuàng )建node節點(diǎn)回調
入口函數如下:
public synchronized void processResult(int rc, String path, Object ctx,
String name) {
// .....
}
處理流程圖如下:
監控回調
入口函數如下:
public synchronized void processResult(int rc, String path, Object ctx,
Stat stat) {
// ...
}
處理流程如下:
事件回調
入口函數如下:
synchronized void processWatchEvent(ZooKeeper zk, WatchedEvent event) {
// ..
}

0 評論