A MapReduce app implements a pipeline
(input) -> <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2> -> sort -> <k3, v3> -> reduce -> <k4, v4> -> (output)
where: