ZooKeeperはHA HDFSを実装しています

単一ノード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

 

おすすめ

転載: www.cnblogs.com/zqzhen/p/12720441.html