We can set the number of slots on the TaskTracker to be high and let FairScheduler handles the slots.
This approach allows us to change the number of slots on each node dynamically.
The administrator can change the number of slots with a CLI tool.
One use case of this is for upgrading the MapReduce.
Instead of restarting the cluster, we can run the new MapReduce on the same cluster.
And use the CLI tool to gradually migrate the slots.
This way we don't lost the progress fo the jobs that's already executed.