The Task Distribution Chart

The Task Distribution chart shows the distribution of attempts according to their duration on the X-axis and a number of different metrics on the Y-axis.

Each cell of the chart represents the number of tasks whose performance statistics fall within the parameters of the cell. The Task Distribution chart is useful for detecting tasks that are outliers in your job, either because of skew, or because of faulty TaskTrackers. The chart can clearly show if some tasks deviate significantly from the majority of task attempts.

Normally, the distribution of tasks will be fairly concentrated. If, for example, some Reducers receive much more data than others, that will be represented by having two discrete sections of density on the graph. That suggests that there may be a problem with the user code, or that there's skew in the underlying data. Alternately, if the input sizes of various Map or Reduce tasks are the same, but the time it takes to process them varies widely, it might mean that certain TaskTrackers are performing more poorly than others.

You can click in a cell and see a list of the TaskTrackers that correspond to the tasks whose performance falls within the cell.

The X-axis show the task duration is seconds. From the drop-down you can chose different metrics for the Y-axis: Input or Output records or bytes for Map tasks, or the number of CPU seconds for the user who ran the job:

  • Map Input Records vs. Duration
  • Map Output Records vs. Duration
  • Map Input Bytes vs. Duration
  • Map Output Bytes vs. Duration
  • Map Total User CPU seconds vs. Duration
  • Reduce Input Records vs. Duration
  • Reduce Output Records vs. Duration
  • Reduce Total User CPU seconds vs. Duration