単一ノードNameNodeに問題があります:
NameNodeがダウンし、メタデータデータが消えます。
単一ノードに障害が発生した場合、どのようにフェイルオーバーしますか
NameNodeが追加されると、スプリットブレインの問題(クラスターに複数のマネージャーが含まれる)が発生します。それを解決するにはどうすればよいですか?
ZKは高可用性(HA High Aliavble)HDFSクラスターを構築します
原理
QJM(Quorum Jouranl Manager)は、HadoopがNameNode共有ストレージ用に開発したコンポーネントです。クラスタは一連のジャーナルノードを実行します。各ジャーナルノードはシンプルなRPCインターフェースを公開し、NameNodeがデータを読み書きできるようにし、データはジャーナルノードのローカルディスクに保存されます。
フェイルオーバーの問題では、NameNodeのステータスを監視するためにZookeeperFailController(ZKFC)が導入されています。ZKFCは通常、NameNodeホストマシンで実行され、Zookkeeperクラスタの書き込みにより、障害の自動転送を完了します。
ジャーナルノードの2つの機能:
- NameNodeの編集ログを同期する
- スプリットブレイン状況が発生すると、分離メカニズムがトリガーされ、NameNodeノードの1つを強制終了します(たとえば、NameNode1にネットワーク遅延があり、ZooKeeperがそれをダウンしていると判断し、ZKFCがNameNode2をスタンバイからアクティブに変更します。 NameNodeはアクティブな状態であり、ブレインスプリットが発生し、ジャーナルノードは分離メカニズムをトリガーします。残りのNameNode1の書き込み操作が完了すると、SSHを介してNameNode1ノードにログインし、プロセスをシャットダウンします)
ZKクラスター
通常、3つの独立したポートを開く必要があります
1:クライアント要求を処理する
2:クラスター内のアトミックブロードキャスト
3:クラスター内での投票
ZKクラスターの作成
1. zookeeperをインストールする
2.各zkノードにデータディレクトリを作成します。各データディレクトリには、zkノードを一意に識別するためのmyidファイルが必要です
3. dataディレクトリにzoo.cfgの構成ファイルを作成します
zkクラスターを起動する
1 ./zkServer.sh start /root/zkdata/zoo.cfg
クラスターのステータスを表示する
1 ./zkServer.sh status /root/zkdata/zoo.cfg