<Li> "Shuffle" the Map output to the Reduce processors--the MapReduce system designates Reduce processors, assigns the K2 key value each processor should work on, and provides that processor with all the Map - generated data associated with that key value . </Li> <Li> Run the user - provided Reduce () code--Reduce () is run exactly once for each K2 key value produced by the Map step . </Li> <Li> Produce the final output--the MapReduce system collects all the Reduce output, and sorts it by K2 to produce the final outcome . </Li> <P> These five steps can be logically thought of as running in sequence--each step starts only after the previous step is completed--although in practice they can be interleaved as long as the final result is not affected . </P>

Open source software developed from google mapreduce concept