Class BlacklistScheduler

java.lang.Object
org.apache.storm.scheduler.blacklist.BlacklistScheduler
All Implemented Interfaces:
INodeAssignmentSentCallBack, IScheduler

public class BlacklistScheduler extends Object implements IScheduler
  • Field Details

    • DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME

      public static final int DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME
      See Also:
    • DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT

      public static final int DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT
      See Also:
    • DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_TIME

      public static final int DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_TIME
      See Also:
    • toleranceTime

      protected int toleranceTime
    • toleranceCount

      protected int toleranceCount
    • resumeTime

      protected int resumeTime
    • reporter

      protected IReporter reporter
    • blacklistStrategy

      protected IBlacklistStrategy blacklistStrategy
    • nimbusMonitorFreqSecs

      protected int nimbusMonitorFreqSecs
    • cachedSupervisors

      protected Map<String,Set<Integer>> cachedSupervisors
    • badSupervisorsToleranceSlidingWindow

      protected org.apache.storm.shade.com.google.common.collect.EvictingQueue<Map<String,Set<Integer>>> badSupervisorsToleranceSlidingWindow
    • sendAssignmentFailureCount

      protected org.apache.storm.shade.com.google.common.collect.EvictingQueue<Map<String,Integer>> sendAssignmentFailureCount
    • windowSize

      protected int windowSize
    • blacklistedSupervisorIds

      protected volatile Set<String> blacklistedSupervisorIds
  • Constructor Details

    • BlacklistScheduler

      public BlacklistScheduler(IScheduler underlyingScheduler)
  • Method Details

    • prepare

      public void prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)
      Specified by:
      prepare in interface IScheduler
    • cleanup

      public void cleanup()
      Description copied from interface: IScheduler
      called once when the system is shutting down, should be idempotent.
      Specified by:
      cleanup in interface IScheduler
    • schedule

      public void schedule(Topologies topologies, Cluster cluster)
      Description copied from interface: IScheduler
      Set assignments for the topologies which needs scheduling. The new assignments is available through `cluster.getAssignments()`
      Specified by:
      schedule in interface IScheduler
      Parameters:
      topologies - all the topologies in the cluster, some of them need schedule. Topologies object here only contain static information about topologies. Information like assignments, slots are all in the `cluster` object.
      cluster - the cluster these topologies are running in. `cluster` contains everything user need to develop a new scheduling logic. e.g. supervisors information, available slots, current assignments for all the topologies etc. User can set the new assignment for topologies using cluster.setAssignmentById()`
    • config

      public Map<String,Map<String,Double>> config()
      Description copied from interface: IScheduler
      This function returns the scheduler's configuration.
      Specified by:
      config in interface IScheduler
      Returns:
      The scheduler's configuration.
    • getBlacklistSupervisorIds

      public Set<String> getBlacklistSupervisorIds()
    • nodeAssignmentSent

      public void nodeAssignmentSent(String node, boolean successful)
      Specified by:
      nodeAssignmentSent in interface INodeAssignmentSentCallBack