1

JobTrackerがマップタスクをTaskTrackerに割り当てるとき、NameNodeと通信する必要がありますか?または、InputSplit自体から情報を取得できますか?コードを見ると、InputSplitsにBlockLocationsがパックされていることがわかります。JobTrackerはこの情報を使用しますか、それともNamenodeと連携する必要がありますか?

4

2 に答える 2

0

JobTrackerはNameNodeに接続して、ブロックの場所を取得します。ジョブが処理しているブロックの数が非常に多い場合、このプロセスには特に時間がかかることがあります。

于 2012-12-07T04:02:06.380 に答える
0

クライアントは分割情報を計算し、分割情報とともにHDFSに書き込みます。

Hadoop 1.xを調べることができますJobSplit.SplitMetaInfo。ここには、場所をシリアル化するシリアル化が実装されています。

ジョブトラッカーは、これらのシリアル化を取得してスケジュールします。スロットが使用可能な場合、場所は実行を高速化するためのヒントにすぎません。

于 2012-12-07T08:28:51.400 に答える