この中にHadoopのチュートリアルのの 、我々はすべてのHadoopの最初の名前ノードの自動フェイルオーバーの概念を議論しようとしている、我々は、フェイルオーバーとフェイルオーバーの種類が何であるかが表示されます。そして、私たちがカバーするHDFS のの Hadoopの自動フェイルオーバー。
そのようなZooKeeperのクォーラムとしてHDFSにHadoopの自動フェイルオーバーの構成要素、ZKFailoverControllerプロセス(ZKFC)。最後に、我々はまた、Hadoopの中にこれら二つの要素のの役割について説明します 。
何であるフェイルオーバー?
それは障害がとして知られている検出された場合、システムは二次システムへの制御を転送する処理フェイルオーバするの 。
フェイルオーバーは、2つのタイプがある:
- を正常なフェイルオーバー - を 管理者は、定期的なメンテナンスの場合には、例えば、手動で正常なフェイルオーバーを開始します。システムは、アクティブノードが正常なフェイルオーバーに失敗した場合でも、アクティブからスタンバイ名前ノードに自動的にフェイルオーバーをアクティブにしないだろうします。
- の自動フェイルオーバー - を 自動フェイルオーバーは、名前ノードに障害が発生したときにシステムが自動的にスタンバイの名前ノードにその制御を転送するプロセスです。 Hadoopのでは自動フェイルオーバーは、名前ノードの障害が発生した場合に発生します。しかし、名前ノードに障害が発生した場合に、フェールオーバーが自動的に起動します。このフェイルオーバーは、自動フェイルオーバーされます。
Hadoopの中に名前ノードの自動フェイルオーバー
Hadoopの中の自動フェイルオーバーはHadoopのHDFSの展開にコンポーネントを下回るまで追加されます。
- のZooKeeperクォーラムます。
- ZKFailoverControllerプロセス(ZKFC)。
1。 ZooKeeperのクォーラム
Hadoopの中飼育係は、集中サービスです。これは、構成情報、ネーミングを維持し、分散同期を提供します。また、グループのサービスを提供しています。飼育係はまた、マシンの大規模なクラスタを管理し、調整します。
理由以下のため、飼育係に依存しているフェイルオーバー自動HDFSの実装
- の障害検出 - を Hadoopの中飼育係はnamenodesとのセッションを維持します。故障時には、セッションが期限切れになります。だから、飼育係は、フェールオーバープロセスを開始するために、他のnamenodesを通知します。
- のアクティブ名前ノード選挙 - を 飼育係によって提供される単純なメカニズムは、アクティブとしてノードを選出します。アクティブな名前ノードに障害が発生した時には、他の名前ノードは、それが次のアクティブな名前ノードになりたい旨の飼育係に排他ロックを取ることができます。
2。 ZKFailoverController(ZKFC)
ZKFCは、名前ノードの状態を管理し、モニターとのHadoopでの飼育係のクライアントです。名前ノードのサービスを実行するマシンの各々はまたZKFSを実行します。それは扱うことができます。
- の健康監視 - を ヘルスチェックコマンドでZKFSは、その地域の名前ノードをpingします。 ZKFSは、一度に名前ノードが応答している限り、名前ノードは健康と見なします。ヘルスモニタは、ノードがクラッシュした、または不健康な状態になった場合、不健康としてノードをマークになります。
- の飼育係のセッション管理 - を ローカル名前ノードが健全であるときZKFCは、飼育係でオープンセッションを保持しています。ローカル名前ノードがアクティブである場合にも、特別な「ロック」のznodeを保持しています。セッションが期限切れになった場合、ロックは自動的に削除されます。
- の飼育係ベースの選挙 - を ローカル名前ノードが健全である、とあればHDFSでは、ZKFCは、他のノードが現在ロックのznodeを保持していないことを見て、それ自体がロックを取得しようとします。それが成功した場合、それは「選挙に勝った、そしてそれは、その地域の名前ノードをアクティブにするためにフェイルオーバーを実行している処理します。
結論
したがって、Hadoopの中に自動フェイルオーバーは、名前ノードに障害が発生した場合に自動的に開始されます。自動フェイルオーバーは、HDFSの展開にZooKeeperの定足数とZKFailoverControllerプロセス(ZKFC)コンポーネントを追加します。
Hadoopの中飼育係は、HDFSで自動フェイルオーバーの機能を提供するサービスです。の 。