1. Apache Hadoop 3.3.6 Documentation, "HDFS High Availability Using the Quorum Journal Manager (QJM)":
ZKFC Role: In the "Architecture" section, the subsection "ZKFailoverController (ZKFC)" states, "The ZKFC is a ZooKeeper client which is also responsible for managing the state of the NameNode... Each of the machines which runs a NameNode also runs a ZKFC, and this ZKFC is responsible for: Health monitoring... ZooKeeper leader election."
Standby NameNode Role (Metadata Merge/Checkpointing): In the "Architecture" section, the description of the Standby NameNode's function explains that it reads edits from JournalNodes to stay synchronized and performs checkpoints of the namespace state, effectively merging the metadata.
2. Huawei FusionInsight HD 6.5.1 Administrator Guide, "HDFS Architecture":
Section 3.1.1, "HDFS Architecture (HA Mode)": This section describes the components of an HDFS HA cluster. It details that the ZKFC component is responsible for monitoring NameNode status and performing active/standby switchovers. It also clarifies that the Standby NameNode is responsible for synchronizing metadata from the Active NameNode and performing checkpoint operations (merging fsimage and edits).
3. Hadoop: The Definitive Guide, 4th Edition by Tom White (O'Reilly Media):
Chapter 3, "The Hadoop Distributed Filesystem", Section "High Availability": This chapter details the HDFS HA architecture. It explicitly describes the role of the ZKFC in managing failover and the role of the standby NameNode in performing checkpoints, which is the process of merging the fsimage and edits log. (Note: While a book, it is widely considered an authoritative reference in the field, often used in university curricula).