其他Storm用户:
设置风暴群集的准则(https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster)表明supervisor.slots.ports配置属性设置为对每个工作者在一台机器上你分配一个单独的端口.
我的理解是每个worker都是一个JVM实例,它监听来自nimbus控制器的命令.所以每个人都听一个单独的端口是有道理的.
但是,backtype.storm.Config上还有一个方法,它似乎允许定义worker的数量.如果对setNumWorkers的调用尝试设置的工作数多于为端口配置的工作数,该怎么办?这似乎搞砸了.
对我来说唯一有意义的是yaml配置定义了worker数量的上限.每个拓扑可以请求为其分配一些worker.但是如果我提交了两个拓扑(对某个特定的集群),每个拓扑都会调用Config.setNumWorkers(2),那么我最好配置四个端口.
这是正确的想法吗?
在此先感谢.. -chris
嗯,我认为上限猜测是正确的。我在笔记本电脑上设置了一个单机 Storm 集群,然后构建了 ExclamationTopology (来自storm-starter)..我只设置了两个工作人员,但 ExclamationTopology 调用了 > conf.setNumWorkers(3);
但是,当我查看 Storm UI 时,它告诉我“Num Workers”是 2。
因此,您在storm.yaml 文件中设置的内容似乎是上限,如果您要求的工作人员数量超过您配置的端口数量,那么您只需获得可用的最大值。
(警告:我刚刚进入这个领域,绝不是专家,所以我有可能错过了一些东西......但上面的报告是我观察到的。)