Namenode
takes the input and divide it into parts and assign them to data nodes. These
datanodes process the tasks assigned to them and make a key-value pair and
returns the intermediate output to the Reducer. The reducer collects this key
value pairs of all the datanodes and combines them and generates the final
output.