The document describes MapReduce, a programming model for processing large datasets in a distributed computing environment. It explains the map and reduce functions, providing examples of doubling array elements with map and summing array elements with reduce. General forms are given for map and reduce, showing how arbitrary functions can be passed to each. Benefits are that code only needs to replace the map and reduce implementations rather than be rewritten when run on multiple machines. Hadoop is introduced as an implementation of MapReduce that is parallel, distributed, fault-tolerant and aware of network topology.