JournalNodes
Understand the components of the JournalNode metadata directory.
In an HA deployment, edits
are logged to a separate set of
daemons called JournalNodes. A JournalNode’s metadata directory is configured by
setting dfs.journalnode.edits.dir. The JournalNode contains
a VERSION file, multiple edits__ files and an
edits_inprogress_, just like the NameNode. The
JournalNode does not have fsimage
files or
seen_txid
. In addition, it contains several other files
relevant to the HA implementation. These files help prevent a split-brain
scenario, in which multiple NameNodes could think they are active and all try to
write edits
.
- committed-txid
-
Tracks last transaction ID committed by a NameNode.
- last-promised-epoch
-
Contains the “epoch,” which is a monotonically increasing number. When a new NameNode, starts as active, it increments the epoch and presents it in calls to the JournalNode. This scheme is the NameNode’s way of claiming that it is active and requests from another NameNode, presenting a lower epoch, must be ignored.
- last-writer-epoch
-
Contains the epoch number associated with the writer who last actually wrote a transaction.
- paxos
-
Specifies the directory that temporary files used in the implementation of the Paxos distributed consensus protocol. This directory often appears as empty.