MapReduce — a programming paradigm for processing massive datasets in parallel across distributed clusters, popularized by Google and Apache Hadoop.
Two Phases
1. Map: Apply a function to each input record independently → produce (key, value) pairs 2. Reduce: Group all values by key → combine them into final results
Example: Word Count
Input: "the cat sat on the mat"
Map: "the"→1, "cat"→1, "sat"→1, "on"→1, "the"→1, "mat"→1
Shuffle/Sort: Group by key
"cat"→[1], "mat"→[1], "on"→[1], "sat"→[1], "the"→[1,1]
Reduce: Sum values per key
"cat"→1, "mat"→1, "on"→1, "sat"→1, "the"→2
Why It Works
- Map phase is embarrassingly parallel (each record independent)
- Framework handles data distribution, fault tolerance, shuffling
- Programmer only writes Map and Reduce functions
- Scales linearly: 2x nodes → ~2x throughput
Implementations
- Apache Hadoop MapReduce (original, disk-based)
- Apache Spark (in-memory, 10-100x faster than Hadoop)
- Google Cloud Dataflow / AWS EMR
Limitations
- Not great for iterative algorithms (ML training) — each iteration requires full data pass
- Spark and newer frameworks address this with in-memory caching
MapReduce is the foundation of big data processing — understanding it is essential for distributed computing.
mapreduce basicsmap reduce paradigmdistributed computation
Explore 500+ Semiconductor & AI Topics
From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.