NameNode HDFS и ResourceManager Yarn используют ZK для реализации первичного и вторичного переключения. Основной класс: ZKFailoverController.java,
Основной класс выборов — ActiveStandbyElector.java.
Основным классом Первичных и вторичных выборов является ActiveStandbyElector. Во время инициализации нужно создать соединение zk и попробовать создать файлы на zk. При создании соединения или создании файла произойдет событие обратного вызова.
Функции обработки обратного вызова в основном включают в себя:
Функция входа следующая:
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) {
// ..
}