- Map
- The user-written function that takes one input key/value pair and produces a set of intermediate key/value pairs, typed map (k1,v1) to list(k2,v2). Its output is buffered in memory and spilled to the worker's local disk.
- Reduce
- The user-written function that accepts an intermediate key and an iterator over all values for that key, merging them into a possibly smaller set of values. Typically just zero or one output value is produced per invocation.
- Master
- The one copy of the program that is not a worker: it assigns map and reduce tasks to idle workers, tracks task state, and forwards the locations of intermediate file regions from map side to reduce side. It is also the failure detector and the single point of failure.
- Worker
- An ordinary copy of the user program that executes whichever map or reduce task the master assigns it. Workers are pinged periodically and their tasks are reassigned if they stop responding.
- M and R
- The number of input splits, hence map tasks, and the number of output partitions, hence reduce tasks. Both are chosen much larger than the machine count, with M sized so each map task covers 16-64 MB and R a small multiple of the expected worker count.
- Partitioning function
- The function on the intermediate key that decides which of the R reduce tasks a record belongs to, hash(key) mod R by default. Users can supply their own, for example hashing only the hostname of a URL key so all entries for a host land in one output file.
- Combiner
- An optional function run on the map machine that partially merges intermediate records with the same key before they are sent over the network. It is applicable when the reduce function is commutative and associative, and is usually implemented by the same code as the reducer.
- Straggler
- A machine that takes an unusually long time to complete one of the last few map or reduce tasks, whether from a failing disk, contention with other tasks scheduled on it, or a hardware or configuration fault. Stragglers are a leading cause of long job completion times.
- Backup task
- A redundant execution of a still in-progress task, scheduled by the master when the operation is close to completion. Whichever of the primary or the backup finishes first marks the task complete, at a cost tuned to a few percent of extra resources.