标签:
Scheduler是storm的调度器,负责为topology分配当前集群中可用的资源。Storm分别提供了3中调度器:
这三个调度器是用clojure写的,先忽略掉,等待后面分析源码部分再写。
先来举一个实际例子,看一下storm的调度过程,相信大家一看都能明白。
【场景】假设当前集群中有6台机器,每台机器上可用端口均为6700、6701、6702、6703,并且当前急群中没有正在运行的topology,初始状态如如所示:
下表是我们依次要提交的3个topology:
Topology | Worker数目 | Executor数目 | Task数目 |
T-1 | 3 | 8 | 16 |
T-2 | 5 | 10 | 10 |
T-3 | 8 | 16 | 16 |
正常情况下,EvenScheduler和DefaultScheduler的调度结果是一致的,这两个可以放在一起。看看会经过如下阶段:
1、提交T-1
此时,集群中的任务分配情况为:
2、提交T-2
此时集群中的任务分配情况如下:
3、提交T-3
标签:
原文地址:http://www.cnblogs.com/zengdan-develpoer/p/4638152.html