在storm中配置并行

vmdwslir  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(319)

我是apachestorm的新手,我正在尝试为自己弄清楚如何配置storm并行性。因此,有一篇伟大的文章“理解风暴拓扑的并行性”,但它只引起了问题。
当您有一个多节点风暴集群时,每个拓扑都会根据 TOPOLOGY_WORKERS 配置参数。因此,如果你有5个工人,那么你有5个喷口副本(每个工人1个),同样的事情是螺栓。
如何在风暴群内部处理这种情况(最好不创建外部服务):
我只需要一个由所有拓扑示例使用的喷口,例如,如果输入数据通过一个网络文件夹推送到集群中,该文件夹将被扫描以查找新文件。
混凝土型螺栓也存在类似问题。例如,当数据由锁定在具体物理机器上的许可第三方库处理时。

vaqhlq81

vaqhlq811#

首先,基础知识:
workers—运行执行器,每个worker都有自己的jvm
executors—运行任务,每个executor通过storm分布到不同的worker中
任务-运行喷口/螺栓代码的示例
第二,修正。。。拥有5名员工并不意味着你将自动拥有5份你的喷口。拥有5个worker意味着您有5个独立的jvm,storm可以在其中分配执行器来运行(可以将其看作5个bucket)。
第一次创建和提交拓扑时,将配置喷口的示例数:

TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("0-spout", new MySpout(), spoutParallelism).setNumTasks(spoutTasks);

因为整个集群只需要一个喷口,所以可以同时设置两个喷口 spoutParallelism 以及 spoutTasks 到1。

相关问题