思考:名前ノードのメタデータがどこに保存されていますか?
多くの場合、ランダムアクセスの必要性だけでなく、お客様のご要望に応え、低効率である必要があるため、メタデータは、ディスクの名前ノードのノードに格納されていると仮定すると。このように、メモリに格納されるメタデータが必要。専用メモリがある場合停電しかし、一度、メタデータが失われ、クラスタ全体が機能しません。このように生成したバックアップディスクメタデータのFsImageを。
===メモリ更新内のメタデータは、同時に更新FsImageであれば、低効率につながるが、あなたは更新しない場合は、整合性の問題は、ノードの名前ノードと、発生したときに「これは、新たな問題をもたらします停電は、それがデータの損失を持っています。したがって、導入編集ファイル(のみ追記動作、高効率)。メタデータの更新や追加のメタデータは、メモリ内のメタデータを変更し、編集に追加するたびに。したがって、ノードの名前ノードのオフ回、及びFsImage編集、合成メタデータを組み合わせることができます。
しかし、あなたが長い時間で編集にデータを追加する場合、ファイルデータにつながることは大きすぎる、効率を低下させますが、停電後、回復時間は、メタデータを必要な長すぎます。したがって、定期的なFsImage編集のマージと、もし操作によって完了名前ノードノード意志の低い効率。そのため、新しいノードの導入
SecondaryNamenode、特にFsImageと編集の合併のため。
1.ステージ1:名前ノード開始
(1)まず、名前ノードのフォーマットを開始しFsimageと編集ファイルを作成します。これが初めてではない場合は、起動しログインして編集した画像を直接メモリにファイルをロードします。
(2)クライアントは、追加および削除のメタデータを要求します。
(3)名前ノードレコード操作ログは、更新ログをローリング。
メモリ内のデータへの(4)名前ノードの付加および欠失。
2.ステージ:セカンダリ名前ノードの作業
(1)二次名前ノードは名前ノードがチェックポイントが必要かどうかを尋ねました。名前ノードは、直接戻るかどうかの結果を確認します。
(2)二次名前ノード要求の実行チェックポイント。
(3)名前ノードのスクロールは、編集ログを書き込まれています。
(4)ミラーファイルとセカンダリ名前ノードにコピースクロールする前に、編集ログ。
(5)二次名前ノード負荷と画像メモリにログファイルを編集し、そしてプールしました。
新たな画像ファイルfsimage.chkpointを生成する(6)。
(7)fsimage.chkpoint名前ノードをコピーします。
(8)名前ノードはfsimageに改名さfsimage.chkpointます。
1)2つのファイルのデータ自体のための1つを含む、ディスク上のファイルとして格納されているデータノードにデータブロックを、メタデータは、データブロックの長さを含み、チェックサムデータ・ブロック、およびタイムスタンプ。
2)データノードは、定期的(1時間により、登録を開始した後、名前ノード)は、情報ブロック名前ノードの全てを報告します。
3)データノード名前ノードへハートビートリターン結果にハートビート3秒ごとには、別のマシンにコピーデータブロックとしてコマンド、またはデータ・ブロックを削除します。10分以上の心拍データノードを受信しなかった場合は、ノードが使用できないと考えられています。
4)クラスタ操作が安全に参加し、いくつかのマシンを残すことができます。