二次名前ノード
名前ノードの責任は、メタデータ情報を管理することで、データノードの責任は、データストレージに特に責任がある、そしてSecondaryNameNode役割は何ですか?多くの初心者のために非常に混乱しています。なぜそれがに表示されないHDFSに。その名の観点から、それはのように感じている名前ノードのバックアップ。しかし、それは実際にはありません。
私はとき、何を推測HDFSは、いくつかのイベントのために実行中のクラスタの後に、次のいくつかの質問があります:
Lの編集ログファイルが非常に大きくなって、このファイルを管理する方法の課題です。
L名前ノードのにマージするために多くの変化があるので、再起動は、長い時間がかかりますfsimageファイルには。
リットル場合は名前ノードがハングアップ、それはいくつかの変更を失うことになります。この時点であるためfsimageファイルは非常に古いです。
したがって、この問題を克服するために、我々は簡単にするためのメカニズムを必要とする私たちを助けるために管理減らす編集がログに記録したファイルのサイズを、新たな取得fsimageのファイルを、それも削減されます名前ノードの上の圧力を。これはである、Windowsのリカバリポイント非常に多く、のようなものですWindowsのリカバリポイントメカニズムはに私たちを可能にするOSのシステムは、我々はリカバリポイントの最新のロールバックすることができたときに、この問題が発生し、スナップショット。
SecondaryNameNodeはその義務が合併し、問題の解決を支援することです名前ノード編集ログをするfsimageファイルを。
チェックポイント
各トリガ条件に達しているが、なり二次名前ノードがします名前ノードすべてに蓄積された編集と新しいfsimageローカルにダウンロードし、ためにメモリにロードされたマージ(プロセスと呼ばれるチェックポイント以下に示すように、):
チェックポイントの詳細な手順
L名前ノードは、永続的なメタデータファイルの2種類があることを特徴とする請求メタデータ情報を、管理:編集操作のログファイルとfsimageメタデータミラーファイルを。新しい操作ログはすぐにではないでしょうfsimageそれがブラシではないだろう、マージ名前ノードのメモリのが、最初に書いただろうな編集をして(合併は、リソースを大量に消費する必要があるため)、操作が成功した後にメモリに更新します。
lがいるdfs.namenode.checkpoint.periodとdfs.namenode.checkpoint.txns限り、これら2つの条件のいずれかに到達するように2つの構成を、secondarynamenodeが実行チェックポイントの動作を制御します。
Lトリガーチェックポイント動作は、名前ノードは、新しい生成する編集を、すなわち上記図edits.newながら、ファイルをSecondaryNameNodeがあろう編集文書とfsimage(ローカルにコピーされたGET HTTPメソッド)。
Lの secondarynamenodeをダウンロードすることがfsimageをメモリにロードされ、一つ一つが実行編集メモリ作る、アップデートファイルをfsimageは、日付を保存し、このプロセスは、編集とfsimage新しいファイル作成のマージ、fsimageのあるファイルを上の図Fsimage.ckptのファイル。
L secondarynamenode 新しく生成されたFsimage.ckptはにファイルをコピー名前ノードのノード。
リットルで名前ノードのノードedits.newファイルとFsimage.ckptのファイルは、元の置き換えられます編集用ファイルとfsimageので、生まれ変わりであることを起こる、ファイルを、その名前ノード再びは編集とfsimageファイル。
L次のを待っているチェックポイントトリガSecondaryNameNodeの仕事は、このサイクルが運営されています。
チェックポイントトリガ条件
チェックポイント二つのパラメータによって制御される動作は、それがすることができるコアのsite.xml構成:
<プロパティ>
<名前> dfs.namenode.checkpoint.period </名前>
<値> 3600 </ value>の
<説明>
二つの連続するチェックポイント間の時間間隔。デフォルト1 Xiaoshi
</記述>
</プロパティ>
<プロパティ>
<名前> dfs.namenode.checkpoint.txns </名前>
<値> 1000000 </ value>の
<説明>
いいえ最大実行チェックポイントの緊急事態を満たすために、トランザクションの数は、強制されませんチェックポイントを、チェックポイントのサイクルに到達するためには至っていません。デフォルト設定は100百万円となりました。
</記述>
</プロパティ>
私たちは、以上の説明から見ることができ、SecondaryNamenode単純ではない名前ノードのホットスタンバイのは、それだけでfsimageと編集合併は。それは持っていfsimageを彼からだったので、最新の状態にない名前ノードのダウンロードfsimageと編集新しい更新が書き込まれたときのファイルをedit.newをファイルに。これらのアップデートはSecondaryNamenodeに同期されていません!もちろん、場合名前ノードでfsimage本当に問題、あなたはまだ使用することができますSecondaryNamenodeをしてfsimage何置き換える名前ノード上fsimageを最新ではないが、fsimageが、我々は最小限に損失を減らすことができます!