0

HadoopクラスターでMapReduceジョブを実行するときの一連のイベントに関する特定の情報を探しています。

私のReduceタスクが完了間近であると仮定しましょう。最後のレデューサーが出力を出力ファイルに書き込んだ後、出力ファイルのレプリカはいくつありますか?最後のレデューサーが出力ファイルへの書き込みを終了した後に正確に何が起こるか。NameNodeはいつ出力ファイルを複製するようにそれぞれのデータノードに要求しますか?そして、出力ファイルの準備ができたことをName Nodeにどのように通知しますか?誰がその情報をNameNodeに伝えますか?

ありがとうございました!

4

2 に答える 2

3

Reduce タスクは出力を HDFS に書き込みます。これは、最初に名前ノードと通信してブロックを要求することによって行われます。次に、名前ノードは書き込み先のデータ ノードをレデューサーに通知し、レデューサーは実際にデータを最初のデータ ノードに直接送信します。次に、データ ノードはデータを 2 番目のデータ ノードに送信し、3 番目のノードはそれを 3 番目のノードに送信します。通常、名前ノードは物事をローカルに保持するため、最初のデータ ノードはおそらく削減タスクを実行している同じマシンです。

レデューサーが出力の書き込みを終了し、データ ノードがこれを確認すると、レデューサー自体が、定期的なハートビート通信を介して終了したことをジョブ トラッカーに通知します。

于 2012-10-24T21:11:37.240 に答える
1

HDFS レプリケーションの基本を理解するには、HDFS アーキテクチャ ドキュメントのレプリカの配置を読んでください。簡単に言えば、NameNode は同じラックを使用して遅延を最小限に抑えようとします。

于 2012-10-24T22:50:38.447 に答える