Class DefaultBlacklistStrategy
java.lang.Object
org.apache.storm.scheduler.blacklist.strategies.DefaultBlacklistStrategy
- All Implemented Interfaces:
IBlacklistStrategy
- Direct Known Subclasses:
RasBlacklistStrategy
The default strategy used for blacklisting hosts.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateHostToSupervisorMap
(List<String> blacklistedNodeIds, Cluster cluster) getBlacklist
(List<Map<String, Set<Integer>>> supervisorsWithFailures, List<Map<String, Integer>> sendAssignmentFailureCount, Cluster cluster, Topologies topologies) Get blacklist by blacklist strategy.void
releaseBlacklistWhenNeeded
(Cluster cluster, List<String> blacklistedNodeIds) Decide when/if to release blacklisted hosts.void
resume supervisors form blacklist.
-
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:
-
-
Constructor Details
-
DefaultBlacklistStrategy
public DefaultBlacklistStrategy()
-
-
Method Details
-
prepare
- Specified by:
prepare
in interfaceIBlacklistStrategy
-
getBlacklist
public Set<String> getBlacklist(List<Map<String, Set<Integer>>> supervisorsWithFailures, List<Map<String, Integer>> sendAssignmentFailureCount, Cluster cluster, Topologies topologies) Description copied from interface:IBlacklistStrategy
Get blacklist by blacklist strategy.- Specified by:
getBlacklist
in interfaceIBlacklistStrategy
- Parameters:
supervisorsWithFailures
- bad supervisors buffered in sliding windowsendAssignmentFailureCount
- supervisors with failed assignment calls in sliding windowcluster
- 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()`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.- Returns:
- blacklisted supervisors' id set
-
resumeFromBlacklist
public void resumeFromBlacklist()Description copied from interface:IBlacklistStrategy
resume supervisors form blacklist. Blacklist is just a temporary list for supervisors, or there will be less and less available resources. This will be called every time before getBlacklist() and schedule.- Specified by:
resumeFromBlacklist
in interfaceIBlacklistStrategy
-
releaseBlacklistWhenNeeded
Decide when/if to release blacklisted hosts.- Parameters:
cluster
- the current state of the cluster.blacklistedNodeIds
- the current set of blacklisted node ids sorted by earliest- Returns:
- the set of nodes to be released.
-
createHostToSupervisorMap
-