2

Hadoop 1.0.1 で、API を使用して reduce タスクの各ステージの重みを見つけるにはどうすればよいですか?

より明確に言えば、シャッフル フェーズ、順序付けフェーズ、およびマージ フェーズによってどれだけの削減タスクが実行されるかを確認しようとしています。

4

1 に答える 1

1

これを達成する 1 つの方法は、タスクにかかった合計時間と、シャッフルおよびソート フェーズにかかった時間を監視することだと思います。TaskStatusクラスによって提供される次のメソッドを使用して、それを見つけることができます。

getStartTime() : タスクの開始時刻を取得します。

getFinishTime() : タスクの終了時刻を取得します。shuffleFinishTime と sortFinishTime が以前に設定されていない場合、これらは finishTime に設定されます。シャッフル、ソート、および終了がハートビート間隔で完了し、個別に報告されない場合に対処します。タスクの状態が TaskStatus.FAILED の場合、終了時刻はタスクが失敗した時刻を表します。

getShuffleFinishTime() : タスクのシャッフル終了時間を取得します。シャッフル/ソート/終了フェーズが同じハートビート間隔内に終了したためにシャッフル終了時刻が設定されなかった場合、これらが設定されている場合、次のフェーズ、つまりソートまたはタスク終了の終了時刻に設定されます。

getSortFinishTime() : タスクのソート終了時刻を取得します。ソートとリデュースフェーズが同じハートバット間隔で終了したためにソート終了時刻が設定されなかった場合、終了時刻が設定されている場合は、終了時刻に設定されます。

別のアプローチとして、Counters.

これがあなたの質問に答えているかどうか教えてください. ありがとうございました。

于 2013-07-08T11:00:04.753 に答える