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プロジェクトを構築する方法

推薦する

開発者がデータベースロックを詳細に理解する必要がある理由

1.ロックしますか? 1.1 ロックとは何ですか?ロックの本当の意味は、鍵またはコードで開くことがで...

ネイティブ JavaScript を使用して計算機のサンプル コードを開発する

計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...

MySQL で GTID モードをオンラインで有効または無効にする

目次基本的な概要GTIDをオンラインで有効にする1. GTID検証ENFORCE_GTID_CONS...

MySQL の単一テーブル クエリ操作例の詳細な説明 [構文、制約、グループ化、集計、フィルタリング、並べ替えなど]

この記事では、MySQL の単一テーブル クエリ操作について説明します。ご参考までに、詳細は以下の通...

MySQL ページング制限の実用的な最適化

序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...

画像の色を変更するための純粋なCSS

画像の色を変更するための CSS テクニックは非常にシンプルです。具体的なコードは次のとおりです。ヒ...

Ubuntuのインストール Matlab2020b の詳細なチュートリアルとリソース

目次1. リソースファイル2. インストール2.1 詳細な手順2.1.1 ディスクイメージのマウント...

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

JVM 上の高性能データ形式ライブラリ パッケージである Apache Arrow の紹介とアーキテクチャ (Gkatziouras)

Apache Arrow は、BigQuery を含むさまざまなビッグデータ ツールで使用される一...

Linux での感嘆符コマンド (!) の使用の概要

序文最近、弊社では mbp の設定をしており、ssh を使うことが多くなりました。複雑なコマンドを書...

Vueのキャッシュ方法の例の詳細な説明

最近、「フロントエンドキャッシュ」という新しい要件が作成されました要件背景: フォームへの高頻度の繰...

2013年のウェブデザインUIの最もホットなトレンド最も人気のあるUIデザイン

時は経つのが早く、わずか 6 日後には 2013 年が歴史になります。今年は、いわゆるトレンドが多す...

Vue の this.$store.state.xx.xx に関する簡単な説明

目次これを Vue.$store.state.xx.xxストアからデータを取得する私のプロジェクトフ...

CSSレイアウトにおけるフロート属性と位置属性の違い

CSS レイアウト - position プロパティposition 属性は、要素に適用する配置方法...

DockerでLNMPアーキテクチャを展開する方法

環境要件: IPホスト名192.168.1.1ノード1プロジェクト計画:コンテナネットワークセグメン...