TaskTrackers are the workhorses of the JobTracker.
Each TaskTracker has a specific number of slots denoting how many tasks the TaskTracker is configured to run at the same time.
The TaskTrackers periodically report their health status to the JobTracker using a heartbeat message.
This message includes the current progress of all running tasks and the number of idle slots available on the TaskTracker node.
In response, the JobTracker sends new instructions to the TaskTracker.
These instructions include the assignment of a new task or the termination of a running task. To sandbox each running task the TaskTracker runs a separate JVM per slot.