Storm调度
调度器
①EventScheduler:将系统中的可用资源均匀地分配给需要资源的topology,其实也不是绝对均匀,后续会详细说明
②DefaultScheduler:和EvenetScheduler差不多,只不过会先将其它topology不需要的资源重新收集起来,再进行EventScheduler
③IsolationScheduler:用户可定义这个topology的机器资源,storm分配的时候会优先分配这些topology,以保证分配给该topology的机器只为这一个topology服务
④Pluggable Schedule 可插拔式的任务分配器,编写自己的task分配算法
⑤资源感知调度
A、配置conf/storm.yaml
storm.scheduler: "org.apache.storm.scheduler.resource.ResourceAwareScheduler"
对于一个 Topology,用户可以指定各个组件(如:Spout 或 Bolt)运行时每个实例所需要的资源数。用户可以通过以下 API 指定一个组件的所需资源。
B、设置所需 Memory
public T setMemoryLoad(Number onHeap, Number offHeap)
C、设置所需 CPU
public T setCPULoad(Do