storm对topology的分配调度

根据官网介绍,storm内置了4种调度器

分别是: DefaultScheduler, IsolationScheduler, MultitenantScheduler, ResourceAwareScheduler.

下面分别进行介绍,

DefaultScheduler是storm默认调度器,默认时,topology内的组件将随机分配至已有资源上。

IsolationScheduler

IsolationScheduler为资源隔离调度器,这个调度器是为了使得topology对服务器节点进行独占。使得不同的topology发布时,占用不同的服务器资源,彼此形成物理隔离。

使用如下:

编辑nimbus所在服务器下的storm.yaml,添加如下配置:


表明,我发布名字为zc1的topology时,此拓扑将独占两台服务器,zc2的topology将独占一台服务器。

之前我一共配备了3台服务器作为从节点。发布后效果如下:


由图可见,虽然我的服务资源里还有worker资源,但是由于zc1,zc2已经独占了3台服务器,所以我的otherTopology无法分配到计算资源。

MultitenantScheduler

官网并没有对此调度器进行说明,只是留下了这个类在github上的位置,我们通过阅读此类的源码,也可以分析出此类的调度规则。




根据代码可知,这种调度模式会为每个topology发布者构造一个自己专属的隔离资源池,之后会通过遍历topology集,通过为资源池分配topology关联来分配节点。

验证:



由图可见,root分配第三个topology时,已经无法分配。(注:storm这个功能不太稳定,不建议使用)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • YarnYarn产生背景:Yarn直接来自于MR1.0MR1.0 问题:采用的是master slave结构,ma...
    时待吾阅读 11,178评论 2 23
  • 目录 场景假设 调优步骤和方法 Storm 的部分特性 Storm 并行度 Storm 消息机制 Storm UI...
    mtide阅读 17,229评论 30 60
  • Strom集群结构是有一个主节点(nimbus)和多个工作节点(supervisor)组成的主从结构,主节点通过配...
    看山远兮阅读 7,939评论 0 7
  • 啊!谁? 姐姐你能抱我一下吗? 啪! 自那次相遇后,这个小药童每天都来山里找我。 ...
    子若没有雅木阅读 3,841评论 0 0
  • 温温柔柔 低头敛眉 眸间仿佛含了一池春水 越看你这样 我越是想不管不顾的冲过去 闹的你七上八下 却也只能无可奈何的...
    卖瓜的阅读 845评论 0 0