Yarn Scheduler Load Simulator (SLS)

SLS is a stress and performance harness for the Yarn Resource Manager Scheduler
that exercises the scheduler implementation simulating the cluster size and the
applications load without having to have a cluster nor applications.

SLS runs a regular RM without RPC endpoints and uses a NodeManager and
Application Manager simulators to send and receive events simulating cluster
and application load behavior.

==== Quick Start ====

Let $HADOOP_ROOT represent the Hadoop install directory. If you build Hadoop
yourself, $HADOOP_ROOT is hadoop-dist/target/hadoop-$VERSION. The simulator 
is located at $HADOOP_ROOT/share/hadoop/tools/sls. The folder sls contains 
four directories: bin (running scripts), html (web portal to view progress),
sample-conf (some example configurations), and sample-data (an example rumen
trace).

STEP 1: Copy all configuration files (under sample-conf) to $HADOOP_ROOT/etc/hadoop.
STEP 2: Go to the $HADOOP_ROOT/share/hadoop/tools/sls directory, and run the simulator 
using the sample rumen trace (under sample-data).

bin/slsrun.sh --input-rumen=sample-data/2jobs2min-rumen-jh.json --output-dir=sample-output

The simulator will start to run, and you can track the running progress 
using its web portal (http://$HOST:10001/simulate, where $HOST is the place 
where you run the simulator.). All collected scheduler metrics are stored 
under the output-dir during running. This trace takes about 3 mins to finish.

For more detailed setup, you can check out the document 
(http://issues.apache.org/jira/secure/attachment/12604817/YARN-1021.pdf) 
