map

Maps a single input key/value pair into an intermediate key/value pair.

Output pairs need not be of the same types as input pairs. A given
input pair may map to zero or many output pairs. Output pairs are
collected with calls to
OutputCollector.collect(Object,Object).

Applications can use the Reporter provided to report progress
or just indicate that they are alive. In scenarios where the application
takes significant amount of time to process individual key/value
pairs, this is crucial since the framework might assume that the task has
timed-out and kill that task. The other way of avoiding this is to set
mapreduce.task.timeout to a high-enough value (or even zero for no
time-outs).