首页 > 解决方案 > 具有一个工作节点的 Apache Storm 中的并行性

问题描述

我正在尝试使用 Apache Storm 并行化我的拓扑,但java.util.ConcurrentModificationException如果我增加工作程序的数量>1,它会在工作程序节点上出现错误。它适用于 1 个工作人员和本地集群。我想要一种方法来并行化我的拓扑并仅使用一个工作节点来测量不同的参数,如吞吐量、延迟、发射率等。

标签: apache-storm

解决方案


根据您发布的堆栈跟踪,看起来 Kryo 正在尝试序列化 ArrayList 并遇到 ConcurrentModificationException。我会寻找您发出 ArrayList 的任何地方,并确保在将其传递给OutputCollector.emit.

当您只有一个工作人员时,您没有看到此问题的原因可能是 Storm 仅在需要将发出的对象发送给其他工作人员时对其进行序列化。


推荐阅读