Class DefaultSpeculator

java.lang.Object
org.apache.hadoop.service.AbstractService
org.apache.hadoop.mapreduce.v2.app.speculate.DefaultSpeculator
All Implemented Interfaces:
Closeable, AutoCloseable, Speculator, org.apache.hadoop.service.Service, org.apache.hadoop.yarn.event.EventHandler<SpeculatorEvent>

public class DefaultSpeculator extends org.apache.hadoop.service.AbstractService implements Speculator
  • Constructor Details

    • DefaultSpeculator

      public DefaultSpeculator(org.apache.hadoop.conf.Configuration conf, AppContext context)
    • DefaultSpeculator

      public DefaultSpeculator(org.apache.hadoop.conf.Configuration conf, AppContext context, org.apache.hadoop.yarn.util.Clock clock)
    • DefaultSpeculator

      public DefaultSpeculator(org.apache.hadoop.conf.Configuration conf, AppContext context, TaskRuntimeEstimator estimator, org.apache.hadoop.yarn.util.Clock clock)
  • Method Details

    • serviceStart

      protected void serviceStart() throws Exception
      Overrides:
      serviceStart in class org.apache.hadoop.service.AbstractService
      Throws:
      Exception
    • serviceStop

      protected void serviceStop() throws Exception
      Overrides:
      serviceStop in class org.apache.hadoop.service.AbstractService
      Throws:
      Exception
    • handleAttempt

      public void handleAttempt(TaskAttemptStatusUpdateEvent.TaskAttemptStatus status)
      Specified by:
      handleAttempt in interface Speculator
    • eventQueueEmpty

      public boolean eventQueueEmpty()
    • scanForSpeculations

      public void scanForSpeculations()
    • statusUpdate

      protected void statusUpdate(TaskAttemptStatusUpdateEvent.TaskAttemptStatus reportedStatus, long timestamp)
      Absorbs one TaskAttemptStatus
      Parameters:
      reportedStatus - the status report that we got from a task attempt that we want to fold into the speculation data for this job
      timestamp - the time this status corresponds to. This matters because statuses contain progress.
    • addSpeculativeAttempt

      protected void addSpeculativeAttempt(org.apache.hadoop.mapreduce.v2.api.records.TaskId taskID)
    • handle

      public void handle(SpeculatorEvent event)
      Specified by:
      handle in interface org.apache.hadoop.yarn.event.EventHandler<SpeculatorEvent>
    • getSoonestRetryAfterNoSpeculate

      @VisibleForTesting public long getSoonestRetryAfterNoSpeculate()
    • getSoonestRetryAfterSpeculate

      @VisibleForTesting public long getSoonestRetryAfterSpeculate()
    • getProportionRunningTasksSpeculatable

      @VisibleForTesting public double getProportionRunningTasksSpeculatable()
    • getProportionTotalTasksSpeculatable

      @VisibleForTesting public double getProportionTotalTasksSpeculatable()
    • getMinimumAllowedSpeculativeTasks

      @VisibleForTesting public int getMinimumAllowedSpeculativeTasks()