Map-Reduce:
Map-reduce is the process of breaking down a problem into individual chunks such that these chunks can be processed separately. Once processed the chunks can be put together to get the final solution.
Map-reduce can be applied on problems which fit the above criteria, i.e. breaking down and processing it is same as processing the entire problem.