美文网首页
storm对topology的分配调度

storm对topology的分配调度

作者: 一品悟技术_张驰 | 来源:发表于2017-03-13 13:40 被阅读471次

    根据官网介绍,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这个功能不太稳定,不建议使用)

    相关文章

      网友评论

          本文标题:storm对topology的分配调度

          本文链接:https://www.haomeiwen.com/subject/ccyngttx.html