Class DefaultBlacklistStrategy
- java.lang.Object
-
- org.apache.storm.scheduler.blacklist.strategies.DefaultBlacklistStrategy
-
- All Implemented Interfaces:
IBlacklistStrategy
- Direct Known Subclasses:
RasBlacklistStrategy
public class DefaultBlacklistStrategy extends Object implements IBlacklistStrategy
The default strategy used for blacklisting hosts.
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_BLACKLIST_SCHEDULER_RESUME_TIMEstatic intDEFAULT_BLACKLIST_SCHEDULER_TOLERANCE_COUNT
-
Constructor Summary
Constructors Constructor Description DefaultBlacklistStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Map<String,Set<String>>createHostToSupervisorMap(List<String> blacklistedNodeIds, Cluster cluster)Set<String>getBlacklist(List<Map<String,Set<Integer>>> supervisorsWithFailures, List<Map<String,Integer>> sendAssignmentFailureCount, Cluster cluster, Topologies topologies)Get blacklist by blacklist strategy.voidprepare(Map<String,Object> conf)protected Set<String>releaseBlacklistWhenNeeded(Cluster cluster, List<String> blacklistedNodeIds)Decide when/if to release blacklisted hosts.voidresumeFromBlacklist()resume supervisors form blacklist.
-
-
-
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
-
-
Method Detail
-
prepare
public void prepare(Map<String,Object> conf)
- Specified by:
preparein 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:IBlacklistStrategyGet blacklist by blacklist strategy.- Specified by:
getBlacklistin 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:IBlacklistStrategyresume 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:
resumeFromBlacklistin interfaceIBlacklistStrategy
-
releaseBlacklistWhenNeeded
protected Set<String> releaseBlacklistWhenNeeded(Cluster cluster, List<String> blacklistedNodeIds)
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.
-
-