Package org.apache.storm.scheduler

# Class EvenScheduler

java.lang.Object
org.apache.storm.scheduler.EvenScheduler

All Implemented Interfaces:
  `INodeAssignmentSentCallBack`, `IScheduler`

public class EvenScheduler extends Object implements IScheduler

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `EvenScheduler()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Map<String,Map<String,Double>>`
  `config()`
  This function returns the scheduler's configuration.
  `static Map<WorkerSlot,List<ExecutorDetails>>`
  `getAliveAssignedWorkerSlotExecutors(Cluster cluster, String topologyId)`
  `void`
  `prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)`
  `void`
  `schedule(Topologies topologies, Cluster cluster)`
  Set assignments for the topologies which needs scheduling.
  `static void`
  `scheduleTopologiesEvenly(Topologies topologies, Cluster cluster)`
  `static List<WorkerSlot>`
  `sortSlots(List<WorkerSlot> availableSlots)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.storm.scheduler.INodeAssignmentSentCallBack

  `nodeAssignmentSent`

  ### Methods inherited from interface org.apache.storm.scheduler.IScheduler

  `cleanup`

- ## Constructor Details

  - ### EvenScheduler

    public EvenScheduler()

- ## Method Details

  - ### sortSlots

    public static List<WorkerSlot> sortSlots(List<WorkerSlot> availableSlots)

  - ### getAliveAssignedWorkerSlotExecutors

    public static Map<WorkerSlot,List<ExecutorDetails>> getAliveAssignedWorkerSlotExecutors(Cluster cluster, String topologyId)

  - ### scheduleTopologiesEvenly

    public static void scheduleTopologiesEvenly(Topologies topologies, Cluster cluster)

  - ### prepare

    public void prepare(Map<String,Object> conf, StormMetricsRegistry metricsRegistry)
    Specified by:
      `prepare` 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.