Storm Stream API中Executors和Bolts的关系

问题描述

我有一个复杂的 Storm 查询,它是用 Storms Stream API 编写的,由多个操作组成,例如 mapfilterwindow 等。

当我在我的远程集群上运行这个拓扑时,我只能看到在我的机器上执行了几个执行程序,但是在 Storm UI 中出现的 bolts 远远少于操作符 (=bolts) 我以前实施过。我将任务并行度设置为 1,每个操作员的任务数也设置为 1。

示例:对于使用 source、2 x mapsink 运行的查询,仅显示一个 spout一个 bolt

所以我的问题是:

在风暴中是否有任何操作员的链接/共置? 如何将每个操作符从 Streaming API 分离到一台工作机器?

解决方法

我建议检查操作员的日志文件。在每个螺栓和喷口中打印一些东西,看看它们在日志中如何反应。 此外,storm conf 中有一些标签,例如 topology.ras.one.component.per.worker: truetopology.ras.one.executor.per.worker: truetopology.ras.acker.executors.per.worker: 1,可能对您有用。