HDFSのNamenode高可用性メカニズムを見てみよう
2022-01-03 10:53:17
HDFSのNameNodeの高可用性
Hadoop 2.0.0以前は、クラスタにはNamenodeが1つしかなく、これが単一障害点となる。Namenodeのマシンがハングアップすると、クラスタ全体が使用不能になります。クラスタを復旧させるには、Namenodeを再起動するしかない。Hadoop 2.0 以降では、以下に説明する Namenode の高可用性メカニズムが追加されています。
Hadoop Namenode ハイ・アベイラビリティ・アーキテクチャ
Hadoop 2.0では、クラスタ内にプライマリノードのActive NamenodeとスタンバイノードのPassive Namenodeの2つのNamenodeを持ち、ホットバックアップとフェイルオーバーをサポートすることでNamenodeの単一障害点問題を解決しています。
アクティブネームノード
: クラスタ内のすべてのクライアントリクエストを処理する責任を持ちます。
スタンバイ・ネームノード
: アクティブなNamenodeと同じメタデータを持つスタンバイノードです。アクティブなNamenodeに障害が発生した場合に引き継がれる。
アクティブなNamenodeとスタンバイなNamenodeの間で、データはどのように同期されるのでしょうか?つまり、どのように整合性を保っているかというと、主に次のような方法です。
- アクティブとスタンバイのNamenodeは常に同期しています。 例えば、同じメタデータを保存しているので、システムがクラッシュした時の状態にクラスタを復元することができます。また、これに基づいて自動フェイルオーバーも可能です。
- 1つのクラスタには、同時に1つのアクティブなNamenodeノードしか存在できない そうしないと、2つのNamenodeが原因でデータがずれたり、回復できなくなったりすることがあります。この問題に対するZookeeperコミュニティの解決策はフェンシングと呼ばれ、古いアクティブなNamenodeを隔離する方法を見つけることで、外部への適切なサービスを提供できないようにし、クラスタには常にアクティブなNamenodeが1つしかないようにすることである。
Hadoop高可用性アーキテクチャを理解した上で、Hadoop Namenode高可用性がどのように実現されているかを見ていきましょう。
Namenodeの高可用性実装
ここでは、フェンシングとQuorum Journal Manager(QJM)共有ストレージによるHDFSの高可用性に焦点を当てます。
[...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]
関連
-
Xmind無償起動方法(推奨)について
-
近年のImagenetデータセットに基づくPytorchの画像分類モデルについてまとめる。
-
UltraEdit エディタ無料起動方法
-
Git.gitignore開発必携アドバイス集
-
VSCodeリモートサーバ接続エラー:Could not establish connection to VSCode
-
Win10でVScodeのリモート開発 ssh-remote(パスワード不要のログイン)を設定する
-
MATLABチュートリアル データ操作 変数操作と行列表現 詳細
-
ハミングコードの符号化原理の解析と検証方法
-
[解決済み】ターミナルで"-"破線のファイル名を開くには?
-
[解決済み】コンストラクタが与えられた型に適用できない?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
OAuth 1.0から2.1への展開の道のり
-
超詳細チュートリアルのSecureCRT利用
-
ブロッキング、ノンブロッキング、同期、非同期を1つの記事で理解する
-
Visual Studioを使ったファイル差分比較の問題点まとめ
-
Centos7でVscodeが反応しない不具合とその解決方法
-
Visual Studio 2019 ネイティブで Azure Functions を実行できない場合の解決方法
-
Iris環境構築詳細チュートリアル(最新版Go & IDEA & IrisV12)
-
[解決済み】アーキテクチャx86_64の未定義シンボル。コンパイル時の問題
-
C1ミッション01:ゲームアーカイブスの改造方法
-
DevOps、CI、CD、自動化を一挙に解説