Storm基础(二)调度器(Scheduler)

原文链接:http://storm.apache.org/releases/1.0.2/Storm-Scheduler.html

本人原创翻译,转载请注明出处

Storm现在有四种内建的调度器: DefaultScheduler, IsolationScheduler, MultitenantScheduler, ResourceAwareScheduler。

可插拔(Pluggable)调度器

你可以实现自己的调度器来替代默认调度器,自定义给workers分配executors的方式。在你的storm.yaml文件中用"storm.scheduler"来配置,并且你的调度器必须实现IScheduler接口。

孤立(Isolation)调度器

孤立调度器使多个topologies可以简单、安全的共享一个集群。孤立调度器可以使你指定哪个topology应该被孤立,这类被孤立的topology会运行在集群中专用的一组服务器上,其他topology都不会在这些服务器上。专用服务器上的资源会全部分配给孤立topology,如果这些服务器上有其他非孤立topology,那么非孤立topology的运行资源也会被剥夺。为孤立topology分配完资源之后,剩下的资源将由剩下的非孤立topology共享。

要配置孤立调度器首先要在Nimbus的配置中把"storm.scheduler"设置为"org.apache.storm.scheduler.IsolationScheduler"。然后,通过"isolation.scheduler.machines"选项来指定每个topology分配几个服务器。例如:

isolation.scheduler.machines: 
    "my-topology": 8
    "tiny-topology": 1
    "some-other-topology": 3

没在这里列出的topology就不是孤立topology。Storm的普通用户无权修改孤立配置,只有集群管理员有这个权利。
孤立调度器解决了多租约(multi-tenancy)问题——避免topologies之间的资源竞争。生产环境的topologies应该进行孤立配置,开发和测试时则不必。集群中剩下的服务器扮演了孤立topologies失效备援(failover)和运行非孤立topologies两个角色。

你可能感兴趣的:(Storm基础(二)调度器(Scheduler))