RTUComputer ScienceYr 2023 · Sem 62023

Q20Cloud Computing

Question

10 marks

What is MapReduce? Explain the MapReduce programming model with the help of an example (e.g., Word Count).

Answer

MapReduce is a programming model for processing large datasets in parallel across a distributed cluster, consisting of 'Map' and 'Reduce' phases.

MapReduce divides a processing task into two main phases:

1. Map Phase: The input data is divided into independent chunks which are processed by the map tasks in a completely parallel manner. The framework sorts the outputs of the maps, which are then input to the reduce tasks. The Map function takes a set of data and converts it into another set of data, where individual elements are broken down into key/value pairs.

2. Reduce Phase: The Reduce task takes the output from the Map task as input and combines those data tuples into a smaller set of tuples.

Example (Word Count): Consider input text: 'Hello World Hello'. - Map phase emits: (Hello, 1), (World, 1), (Hello, 1). - Shuffle & Sort aggregates by key: Hello -> [1, 1], World -> [1]. - Reduce phase sums values: (Hello, 2), (World, 1). This paradigm abstracts away the complexities of distributed computing, such as network communication, synchronization, and fault tolerance.

MapReduce Execution Flow
MapReduce programming model with Map and Reduce phases
Back to Paper