Don't prematurely kill TaskTrackers.

We assign the JobID to the internal Mesos tracker (for the TaskTracker)
rather than the TaskID.

In the case where a TaskTracker has only map tasks assigned to it and
they have all completed, we mustn't terminate the tracker until the
entire job has finished, including the map tasks.
Hadoop tutorial version bump (CDH4.2.0 -> 4.2.1).
Shuffle offers before sending to frameworks.

This helps ensure fair allocation of resources.
Slave feature: maximum system load.

When the load exceeds a specified value, don't accept tasks.  Some nodes
may become unstable under excessive load (i.e., heavy disk I/O), and
this helps prevent the assigning of further tasks to busy slaves.
Log executor output to syslog.
Kill tasks that never properly launch.

After trying to launch a task tracker, we'll wait up to 5 minutes before
giving up and killing the task.
Terminate executors that aren't needed.

If we launch an executor and then kill the task immediately after, make
sure we also terminate the executor when there are no other tasks.
Make sure you clean up the cgroups test.

Sometimes the cgroup test fails because the directory is already there.
This should ensure that it gets cleanup up in that case before we exit.
Turn down noise from ZooKeeper.
Terminate correct tasks when a slave disconnects.

Previously, when a slave disconnected all tasks for that framework would
be removed and it would result in a bad state for a given framework.  In
the case of Hadoop, it would result in a bunch of zombie tasks running
on the slaves which never terminate.