Hadoop におけるネームノードとセカンダリネームノードの動作メカニズムの説明

Hadoop におけるネームノードとセカンダリネームノードの動作メカニズムの説明

1) プロセス

2) FSImageと編集

NodeNode は HDFS の頭脳です。ファイルシステム全体のディレクトリ ツリーと、ディレクトリ ツリー内のすべてのファイルとディレクトリを管理します。この情報は、2 種類のファイルでファイルシステムに保存されます。1 つは、HDFS メタデータの完全なスナップショットである名前空間イメージ (ファイルシステム イメージ、File System Image、FSImage とも呼ばれます) です。NameNode が起動するたびに、最新の名前空間イメージがデフォルトでロードされます。もう 1 つは、コマンド スペース イメージの編集ログです。

FSImage ファイルは実際にはファイル システム メタデータの永続的なチェックポイントですが、すべての書き込み操作でこのファイルが更新されるわけではありません。FSImage は大きなファイルであるため、書き込み操作が頻繁に実行されると、システムの実行速度が非常に遅くなります。解決策は、NameNode が変更のみを事前にログに書き込むこと、つまり、名前空間イメージの編集ログを書き込むことです。時間が経つにつれて、編集ログはどんどん大きくなります。障害が発生すると、操作をロールバックするのに多くの時間がかかります。そのため、従来のリレーショナル データベースと同様に、FSImage と編集ログを定期的にマージする必要があります。マージ操作をNameNodeで実行すると、NameNodeがクラスターにサービスを提供する際に十分なリソースを提供できなくなる可能性があります。この問題を完全に解決するために、SecondaryNameNodeが誕生しました。

3) フェーズ1: ネームノードの起動

  • (1)ネームノードが起動され、初めてフォーマットされると、fsimageファイルとeditsファイルが作成されます。初回起動でない場合は、編集ログとイメージファイルを直接メモリに読み込みます。
  • (2)クライアントがメタデータの追加、削除、または変更を要求します。
  • (3)ネームノードは操作ログを記録し、ローリングログを更新する。
  • (4)ネームノードはメモリ内のデータを追加、削除、変更、照会します。

4) フェーズ2: セカンダリネームノードの作業

  • (1)セカンダリネームノードはネームノードにチェックポイントが必要かどうかを問い合わせる。結果を確認するには、直接 namenode に戻します。
  • (2)セカンダリネームノードがチェックポイントの実行を要求する。
  • (3)セカンダリネームノードは、書き込まれている編集ログのローリングアップデートを実行するようにネームノードに指示します。
  • (4)セカンダリネームノードはFSImageファイルを読み込み、編集ログを再生し、それをFSImageにマージし、新しいFSImageファイルを圧縮してディスクに書き込みます。
  • (5)fsimageをnamenodeにコピーします。
  • (6)Namenodeはfsimageをfsimageに名前変更します。

デフォルトでは、このプロセスは 1 時間に 1 回、または NameNode 編集ログ ファイルがデフォルトのサイズである 64 MB に達したときに実行されます。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Hadoop ソースコード分析 3 起動とスクリプト分析
  • Hadoop ソースコード分析 4 リモートデバッグ
  • Hadoop ソースコード分析 5 HDFs アーキテクチャの原理分析
  • Hadoop ネームノード フェデレーション
  • Hadoop ソースコード分析 6 つの起動ファイル NameNode の原理の詳細な説明

<<:  MySQLの誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明

>>:  ViteでReactプロジェクトを構築する方法

推薦する

ウェブサイトのユーザビリティを向上させる10のヒント

企業の Web サイト、個人のブログ、ショッピング Web サイト、ゲーム Web サイトなど、どの...

JavaScript ES 新機能ブロックスコープ

目次1. ブロックスコープとは何ですか? 2. ブロックスコープが必要なのはなぜですか? 3. 関数...

MySQL の union と union all の簡単な分析

データベースでは、UNION キーワードと UNION ALL キーワードの両方が 2 つの結果セッ...

MySQL 入門 - SQL 実行プロセス

目次1. プロセス2. コアアーキテクチャ2.1 サーバー層の基本コンポーネントの紹介3. ステート...

jQueryはフォントサイズ調整ケースを実装します

この記事では、フォントサイズを調整するためのjQueryの具体的なコードを参考までに紹介します。具体...

div+css3 を使用して背景グラデーション ボタンを実装するためのサンプル コード

フロントエンド ページの需要が増加し続けるにつれて、一部のシーンではグラデーションの背景要素が必要に...

Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

使用シナリオ:プロジェクトのページでは、頻繁に変更されず、個別のカスタマイズも伴わない大量のデータを...

HTML埋め込みタグの使用方法と属性の詳細な説明

1. 基本的な文法コードをコピーコードは次のとおりです。埋め込み src=url注: 埋め込みはさま...

HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法

Web ページでマスク レイヤーを使用すると、繰り返しの操作を防ぎ、読み込みを促進できます。また、ポ...

MySQL 5.7 における基本的な JSON 操作ガイド

序文プロジェクトのニーズにより、ストレージ フィールドは JSON 形式で保存されます。プロジェクト...

MySQL 8.0.12 解凍バージョンのインストールチュートリアル

この記事では、MySQL 8.0.12解凍版のインストールチュートリアルを参考までに紹介します。具体...

クラウドネイティブテクノロジーKubernetesスケジューリングユニットポッドの使用の詳細な説明

k8s の最小のスケジューリング単位 --- pod前回の記事では、k8s が解決できる問題を簡単に...

Linux mysql-5.6 でルート パスワードをリセットする方法

1. MySQL サービスが起動しているかどうかを確認します。起動している場合は、MySQL サービ...

コーディングスキルを向上させるためのJavaScriptのヒント

目次1. 一意の値をフィルタリングする2. 短絡評価2.1 シナリオ例3. ブール変換4. 文字列を...