諸般の事情で下記コンテンツを訳したので貼っておきます。ManagerとCDHは、HAの実装にクォーラムベースのストレージをサポートしています。Manager)を使用するHAの実装を指します。この実装では、スタンバイNameNodeがアクティブなnameNodeとステートの同期を維持するために、JournalNodeと呼ばれる別のデーモンのグループと通信します。NameNodeによって名前空間の変更が行われると、過半数のJournalNodeに変更のログが永続的に記録されます。スタンバイNameNodeはJournalNodeから編集ログを読み込むことができ、編集ログの変更を常にチェックしています。スタンバイノードは編集ログを確認すると、それを自身の名前空間に適用します。ファイルオーバーが発生した場合、スタンバイNameNodeは自信をアクティブな状態に昇格する前に、JournalNodeから全ての編集ログを読み取ることができます。これにより、フェイルオーバーが発生する前に名前空間の状態は完全に同期されます。素早いフェイルオーバーを提供するためには、スタンバイNameNodeがクラスター内のブロックの場所に関する最新情報を持っていることも必要です。これを実現するためには、DataNodeが両方のNameNodeの場所を使用して構成され、ブロックのロケーション情報とハートビートの両を送信します。HAクラスターが正しく動作するにはどちらか一つのNameNodeのみがアクティブであることが重要です。なければ、名前空間の状態が2つの間で急激に分断し、データの損失やそれ以外の誤った結果が生じる危険性があります。このプロパティを保証し、いわゆるスプリットブレインのシナリオを避けるために、JournalNodeは一度に1つのNameNodeが書き手になることを許可します。アクティブになるNameNodeは、単にJournalNodeへの書き込みの役割を引き継ぎます。これにより他方のNameNodeがアクティブな状態を継続できなくなり、新しいアクティブなNameNodeが安全にフェイルオーバーできるようになります。(ZKFC)に依存しています。ロールにマップされています。ZooKeeperは、少しの量の調整データの維持、そのデータの変更をクライアントに通知、およびクライアントの障害を監視するための高可用性サービスです。内で永続セッションを維持します。マシンがクラッシュすると、ZooKeeperセッションは期限切れになり、フェイルオーバーをトリガーする必要があることを他方のNameNodeに通知します。アクティブとしてノードを排他的に選択する簡単なメカニズムを提供しています。現在アクティブなNameNodeがクラッシュした場合、他方のノードがZooKeeperに特別な排他ロックを取得し、次にアクティブなNameNodeになる必要があることを示します。