public void launchTask ( TaskInProgress tip ) throws IOException { LOG . info ( "Launching simulated task " + tip . getTask ( ) . getTaskID ( ) + " for job " + tip . getTask ( ) . getJobID ( ) ) ; TaskUmbilicalProtocol umbilicalProtocol = taskTracker . getUmbilical ( tip ) ; // For map tasks, we can just finish the task after some time. Same thing // with cleanup tasks, as we don't need to be waiting for mappers to finish if ( tip . getTask ( ) . isMapTask ( ) || tip . getTask ( ) . isTaskCleanupTask ( ) || tip . getTask ( ) . isJobCleanupTask ( ) || tip . getTask ( ) . isJobSetupTask ( ) ) { addTipToFinish ( tip , umbilicalProtocol ) ; } else { MapperWaitThread mwt = new MapperWaitThread ( tip , this , umbilicalProtocol ) ; // Save a reference to the mapper wait thread so that we can stop them if // the task gets killed mapperWaitThreadMap . put ( tip , mwt ) ; mwt . start ( ) ; } }
The primary public method that should be called to run a task . Handles both map and reduce tasks and marks them as completed after the configured time interval