2012-04-18 18 views

答えて

1

マップタスクの出力は、パーティション番号でソートされます。各区画番号は、1つの減速機に対応する。レジューサーが出力をプルすると、ファイルポインターはレデューサーのパーティション番号の開始位置にオフセットされ、読み取りを開始します。もちろん、ファイルオフセットテーブルのパーティション番号は、これを実現するためにマッパー側で管理されています。

+0

コードからは、すべてのスピルファイルをマージした後にマップタスクが終了したように見えます。しかし、どのようにして「ファイル番号のオフセットテーブルへのパーティション番号」をこのように維持できますか?あまりにも、私はReduceTaskで、中間データを取得するためにhttp接続を開きますが、私は地図のタスク側でhttpハンドラが表示されませんがわかります。 TaskTrackerはHTTPリクエストを処理するHTTPサーバーとして機能しますか?疑わしい。 – user1080611

+0

マップの最後に、出力(複数のスピルまたは1回のスピル)がパーティション番号でソートされます。パーティション番号とファイルのオフセットテーブルも書き込まれます。このテーブルはメモリに保持されません。現在のHadoop(1.0/0.20.xxx)は、jettyを使用してHTTPリクエストを切断しています。 Jettyはスレッドで開始できます。詳細については、コードを読む必要があります。現在のトランクは桟橋の代わりにネットティを使用しています。 – root1982

関連する問題