在 HDFS HA(高可用)架构中,ZKFC(ZooKeeper Failover Controller) 是实现 NameNode 自动故障转移(Automatic Failover) 的核心组件。 简单来说,NameNode 自身并不会主动和 ZooKeeper 交互来进行选主,这个工作是交由 ZKFC 来代理完成的。每个运行 NameNode 的节点上都会同时运行一个 ZKFC 进程。 ZKFC 的主要作用可以归纳为以下四个方面: 1. 健康状态监控(Health Monitoring) 作用:ZKFC 会定期通过 RPC 调用向本地的 NameNode 发送健康检查命令(Ping)。 机制:只要 NameNode 及时响应并且状态正常,ZKFC 就认为该 NameNode 是健康的。如果 NameNode 宕机、死锁或无响应,ZKFC 就会将其标记为不健康状态。 2. ZooKeeper 会话管理(ZooKeeper Session Management) 作用:ZKFC 负责维护与 ZooKeeper 集群的通信会话。 机制:当本地 NameNode 健康时,ZKFC ...