Journalnodes
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.