Storm学习第三天

来源:互联网 发布:中国正规旅行社 知乎 编辑:程序博客网 时间:2024/05/21 05:07
调度器:


Storm有四种内置的调度器:DefaultScheduler, IsolationScheduler, MultitenantScheduler, ResourceAwareScheduler.


Pluggable scheduler:
        为了给worker安排executor你可以通过自定义调度器来代替默认的调度器,可以在storm.yaml中使用storm.scheduler来配置调度器,但是自定义的调度器必须实现IScheduler接口。


Isolation scheduler:
          isolation scheduler使得很多topology分享一个集群是安全方便的,isolation scheduler使得定制化哪些topologies应该被孤立,意味着他们能够运行在集群中的一些特定机器上,其他的topology不能运行在这些机器上。这些独立的topology在集群中被给予很高的优先权,所以与其他的topology竞争资源的时候,这些topology将会得到资源,甚至为了确保这些独立topology获得足够的资源,非独立的topology的资源可能被抢占,所有的独立topology获得资源之后,剩下的机器会被非独立的topology获得。
          你可以在Nimbus中配置"storm.scheduler"为"org.apache.storm.scheduler.IsolationScheduler" 来实现独立topology的配置,
然后通过设置"isolation.scheduler.machines"为每个独立的topology设置他所需要的机器数量,例如:
        isolation.scheduler.machines: 
                             "my-topology": 8
                             "tiny-topology": 1
                             "some-other-topology": 3 
被提交到集群的topology没在上面列表中的将不会被独立,注意只有管理员权限可以设置这个,普通用户是不行的。
isolation scheduler 通过在topologies中提供隔离解决了资源竞争问题,这样做的目的是生产环境的topology应该被独立,还在测试或者开发的不应该在这之中,集群中剩下的机器是双重角色,一方面是独立topology的故障转移和非独立topology的运行。
0 0
原创粉丝点击