120 likes | 198 Views
Inside Mumak. Fei Dong@duke. Architecture. Run. Cd hadoop-0.21.0/ mapred / contrib / mumak ./bin/mumak.sh Usage: mumak.sh [-- config dir] trace.json topology.json. Source code. hadoop-0.21.0/ mapred / src / contrib / mumak / src /java/org/apache/ hadoop / mapred /
E N D
Inside Mumak FeiDong@duke
Run • Cd hadoop-0.21.0/mapred/contrib/mumak • ./bin/mumak.sh • Usage: mumak.sh [--config dir] trace.jsontopology.json
Source code • hadoop-0.21.0/mapred/src/contrib/mumak/src/java/org/apache/hadoop/mapred/ • 21 java files, 3494 lines • Main files • 798 SimulatorTaskTracker.java • 670 SimulatorJobTracker.java • 358 SimulatorEngine.java • 354 SimulatorJobClient.java • 295 SimulatorJobInProgress.java • 137 SimulatorEventQueue.java • 110 SimulatorJobStory.java
Dependency • Rumen * • org.apache.hadoop.tools.rumen.* • MapReduce • org.apache.hadoop.mapred.* • org.apache.hadoop.mapreduce.* • Others • org.apache.hadoop.conf • org.apache.hadoop.fs • org.apache.hadoop.net • org.apache.hadoop.util.Tool
Main function • SimulatorEngine.java • Main loop • Init() • Set default config • start time for virtual clock • max Map/Reduce tasks per node • Setting the static mapping before removing numeric IP hosts. • create TTs based on topology.json
Config Parser • JsonObjectMapperParser (behind!) • LoggedNetworkTopologytopology = new ClusterTopologyReader(new Path(topologyFile), jobConf).get(); • JobStoryProducerjobStoryProducer = new SimulatorJobStoryProducer( new Path(traceFile), cluster, firstJobStartTime, jobConf, subRandomSeed);
Event • Abstract Class: SimulaterEvent LoadProbingEvent SimulaterEvent TaskAttemptCompletionEvent HeartBeatEvent JobCompleteEvent JobSubmissionEvent
Event related • SimulatorEvent • SimulatorEventListener • SimulatorTaskTracker • SimulatorJobClient • SimulatorEventQueue • priority queue of events, sort by time order
SimulatorJobSubmissionPolicy /** * replay the trace by following the job inter-arrival rate faithfully. */ REPLAY, /** * ignore submission time, keep submitting jobs until the cluster is saturated. */ STRESS, /** * submitting jobs sequentially. */ SERIAL; JOB_SUBMISSION_POLICY = "mumak.job-submission.policy";
Future Work • Read the details of Simulator*, Rumen • Review the JIRA, discuss in the maillist • Consider where to cut in, and design • Experiment