A MapReduce program comprises a Map() procedure that performs
filtering and sorting (such as sorting students by first name
into queues, one queue for each name) and a Reduce() procedure
that performs a summary operation (such as counting the number
of students in each queue, yielding name frequencies). The
"MapReduce System" (also called "infrastructure", "framework")
orchestrates by marshaling the distributed servers, running the
various tasks in parallel, managing all communications and data
transfers between the various parts of the system, providing for
redundancy and failures, and overall management of the whole
process. MapReduce libraries have been written in many
programming languages. A popular free implementation is Apache
Hadoop. The name MapReduce originally referred to the
proprietary Google technology and has since been genericized.
MapReduce is a framework for processing parallelizable problems
across huge datasets using a large number of computers (nodes),
collectively referred to as a cluste