-2

Hadoop でのジョブ トラッカーとタスク トラッカーの使用は何ですか? namenode に存在するメタデータの内容は何ですか? Hadoopでのセカンダリnamenodeの使用は何ですか?

4

2 に答える 2

1

クイック リファレンスは次のとおりです。

  • NameNode : 名前空間、ファイル システムのメタデータ、およびアクセス制御を管理します。各クラスタには NameNode が 1 つだけ存在します。
  • SecondaryNameNode : 耐障害性のために NameNode から定期的なチェックポイントをダウンロードします。各クラスターには、SecondaryNameNode が 1 つだけ存在します。
  • JobTracker : タスクをスレーブ ノードに渡します。各クラスタには JobTracker が 1 つだけ存在します。
  • DataNode : ファイル システム データを保持します。各データ ノードは、ローカルに接続された独自のストレージ (つまり、ノードのハード ディスク) を管理し、一部またはすべてのブロックのコピーをファイル システムに保存します。各クラスターには 1 つ以上の DataNode があります。クラスタに DataNode が 1 つしかない場合、ファイル システム データは複製できません。
  • TaskTracker : map および reduce タスクを実行するスレーブ。各クラスターには 1 つ以上の TaskTracker があります。

ソース

于 2012-06-29T21:29:55.763 に答える
1

注: チェックポイント ノードを調べてください (セカンダリ ネーム ノードは最新リリースでは廃止されています)。セカンダリ ネーム ノードの目的は、定期的なチェックポイントを実行することです。セカンダリ ネーム ノードは、現在のネーム ノード イメージを定期的にダウンロードしてログ ファイルを編集し、それらを新しいイメージに結合して、新しいイメージを (プライマリで唯一の) ネーム ノードにアップロードします。ユーザーガイドを参照してください。

そのため、name-node に障害が発生し、同じ物理ノードで再起動できる場合は、data-node をシャットダウンする必要はなく、name-node を再起動するだけで済みます。古いノードを使用できなくなった場合は、最新のイメージを別の場所にコピーする必要があります。最新のイメージは、障害が発生する前にプライマリであったノード (利用可能な場合) で見つけることができます。またはセカンダリネームノード上。後者は、後続の編集ログがない最新のチェックポイントになります。つまり、最新の名前空間の変更がそこにない可能性があります。この場合、クラスタ全体を再起動する必要もあります

JobTracker は、Hadoop で MapReduce ジョブを送信および追跡するためのデーモン サービスです。Hadoop クラスターで実行される Job Tracker プロセスは 1 つだけです。Job Tracker は独自の JVM プロセスで実行されます。典型的な本番クラスターでは、別のマシンで実行されます。各スレーブ ノードは、ジョブ トラッカー ノードの場所で構成されます。JobTracker は、Hadoop MapReduce サービスの単一障害点です。ダウンすると、実行中のすべてのジョブが停止します。Hadoop の JobTracker は次のアクションを実行します (Hadoop Wiki から:) クライアント アプリケーションはジョブ トラッカーにジョブを送信します。JobTracker は NameNode と通信して、データの場所を特定します。 JobTracker は、データまたはその近くで使用可能なスロットを持つ TaskTracker ノードを見つけます。 JobTracker は、選択された TaskTracker ノードに作業を送信します。TaskTracker ノードが監視されます。ハートビート信号を頻繁に送信しない場合、失敗したと見なされ、別の TaskTracker で作業がスケジュールされます。TaskTracker は、タスクが失敗したときに JobTracker に通知します。その場合、JobTracker は何をすべきかを決定します。別の場所でジョブを再送信したり、その特定のレコードを避けるべきものとしてマークしたり、TaskTracker を信頼できないものとしてブラックリストに載せたりすることさえあります。作業が完了すると、JobTracker はそのステータスを更新します。

クライアント アプリケーションは、JobTracker をポーリングして情報を取得できます。

TaskTracker は、JobTracker からタスク (Map、Reduce、および Shuffle 操作) を受け入れるクラスター内のスレーブ ノード デーモンです。Hadoop スレーブ ノードで実行される Task Tracker プロセスは 1 つだけです。Task Tracker は独自の JVM プロセスで実行されます。すべての TaskTracker は一連のスロットで構成され、これらは受け入れることができるタスクの数を示します。TaskTracker は、別の JVM プロセスを開始して実際の作業 (タスク インスタンスと呼ばれます) を実行します。これは、プロセスの失敗によってタスク トラッカーが停止しないようにするためです。TaskTracker はこれらのタスク インスタンスを監視し、出力コードと終了コードをキャプチャします。Task インスタンスが正常に終了したかどうかにかかわらず、タスク トラッカーは JobTracker に通知します。また、TaskTracker は、JobTracker がまだ生きていることを確認するために、通常は数分ごとに JobTracker にハートビート メッセージを送信します。

Namenode には、システムの名前空間全体が格納されます。最終変更時刻、作成時刻、ファイル サイズ、所有者、権限などの情報は Namenode に保存されます。name ノードの fsimage はバイナリ形式です。「オフライン イメージ ビューアー」を使用して、fsimage を人間が読める形式でダンプします。ファイルの数が膨大な場合、1 つの Namenode ではすべてのメタデータを保持できなくなります。実際、これは HDFS の制限の 1 つです。異なる名前ノードによって提供される異なる名前空間に分割することで、この問題に対処することを目的とした HDFS フェデレーションを確認できます。

于 2012-06-29T14:07:55.077 に答える