Map-Reduce (Using functional programming paradigm it can be explained as follows)
Consists of two functions Map and Reduce
Map - This will apply the function to each element of the list.
Reduce - this will apply the function to the entire list as a whole. The reduce function is preferred to be associative and commutative.