Map(k1, v1) processes raw inputs to emit intermediate (k2, v2) pairs, and Reduce(k2, list(v2)) aggregates intermediate values per key. The master node tracks worker state (idle, in-progress, completed). Fault tolerance is achieved via re-execution: if a worker fails, its in-progress or completed Map tasks are reassigned to other workers.