MapReduce is a programming model for processing large datasets in a distributed environment. It consists of a map function that processes input key-value pairs to generate intermediate key-value pairs, and a reduce function that merges all intermediate values associated with the same key. It allows for parallelization of computations across large clusters. Example applications include word count, sorting, and indexing web links. Hadoop is an open source implementation of MapReduce that runs on commodity hardware.