Class BlacklistScheduler
- java.lang.Object
-
- org.apache.storm.scheduler.blacklist.BlacklistScheduler
-
- All Implemented Interfaces:
INodeAssignmentSentCallBack
,IScheduler
public class BlacklistScheduler extends Object implements IScheduler
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.storm.shade.com.google.common.collect.EvictingQueue<Map<String,Set<Integer>>>
badSupervisorsToleranceSlidingWindow
protected Set<String>
blacklistedSupervisorIds
protected IBlacklistStrategy
blacklistStrategy
protected Map<String,Set<Integer>>
cachedSupervisors
static int
DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME
static int
DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT
static int
DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_TIME
protected int
nimbusMonitorFreqSecs
protected IReporter
reporter
protected int
resumeTime
protected org.apache.storm.shade.com.google.common.collect.EvictingQueue<Map<String,Integer>>
sendAssignmentFailureCount
protected int
toleranceCount
protected int
toleranceTime
protected int
windowSize
-
Constructor Summary
Constructors Constructor Description BlacklistScheduler(IScheduler underlyingScheduler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanup()
called once when the system is shutting down, should be idempotent.Map<String,Map<String,Double>>
config()
This function returns the scheduler's configuration.Set<String>
getBlacklistSupervisorIds()
void
nodeAssignmentSent(String node, boolean successful)
void
prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)
void
schedule(Topologies topologies, Cluster cluster)
Set assignments for the topologies which needs scheduling.
-
-
-
Field Detail
-
DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME
public static final int DEFAULT_BLACKLIST_SCHEDULER_RESUME_TIME
- See Also:
- Constant Field Values
-
DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT
public static final int DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT
- See Also:
- Constant Field Values
-
DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_TIME
public static final int DEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_TIME
- See Also:
- Constant Field Values
-
toleranceTime
protected int toleranceTime
-
toleranceCount
protected int toleranceCount
-
resumeTime
protected int resumeTime
-
reporter
protected IReporter reporter
-
blacklistStrategy
protected IBlacklistStrategy blacklistStrategy
-
nimbusMonitorFreqSecs
protected int nimbusMonitorFreqSecs
-
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
-
-
Constructor Detail
-
BlacklistScheduler
public BlacklistScheduler(IScheduler underlyingScheduler)
-
-
Method Detail
-
prepare
public void prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)
- Specified by:
prepare
in interfaceIScheduler
-
cleanup
public void cleanup()
Description copied from interface:IScheduler
called once when the system is shutting down, should be idempotent.- Specified by:
cleanup
in interfaceIScheduler
-
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 interfaceIScheduler
- 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 interfaceIScheduler
- Returns:
- The scheduler's configuration.
-
nodeAssignmentSent
public void nodeAssignmentSent(String node, boolean successful)
- Specified by:
nodeAssignmentSent
in interfaceINodeAssignmentSentCallBack
-
-