MapReduce has 2 key components:
Job Tracker:
Coordinates all the jobs run on the system by scheduling tasks
Keeps a record of overall progress of each job
If a job fails, reschedules the job on a different tasktracker
Task Tracker:
Slave daemon which accepts tasks to be run a block of data
Sends progress reports as heart beat signals to the Job tracker at regular intervals