问题标签 [storm-topology]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-storm - Apache Storm 2.1.0 内存相关配置
我们正在从 1.1.x 迁移到 2.1.0。
在我们当前的设置中,storm.yaml 中有以下内存配置
我在https://github.com/apache/storm/blob/master/conf/defaults.yaml中看到了许多其他与内存相关的配置,并且对它们有以下问题。
- worker.childopts和topology.worker.childopts有什么区别?如果我们在storm.yaml 中设置worker.childopts,我们还需要覆盖topology.worker.childopts吗?
- 如果我们在storm.yaml中设置worker.childopts,我们还需要覆盖worker.heap.memory.mb吗?这两个配置之间有关系吗?
- 应该topology.component.resources.onheap.memory.mb < worker.childopts吗?我们应该如何确定topology.component.resources.onheap.memory.mb的值?
感谢有人能解释这些观点。
apache-storm - 什么时候在 Apache Storm 中调用 spout 中的 'ack' 方法?
我有一个用两个螺栓处理文档的拓扑。在文档完全处理/通过整个拓扑结构后,我需要能够修改存储在 spout 中的数据结构。在进一步了解 Apache Storm 之前,我相信在 spout 中实现的 'ack' 方法仅在拓扑结束时调用。我现在看到需要在每个螺栓中调用“ack”并且感到困惑。
本质上,如果我将自定义代码放在 spout 的“ack”方法中:什么时候执行?每次在螺栓中调用“ack”方法时,或者当整个元组树被确认/每个喷口发出的每个元组一次?
apache-storm - Apache Strom 从 1.0.3 升级到 2.2.0 并没有使用所有的 worker
我正在从 Apache Storm 1.0.3 升级到 2.2.0 并面临一个特殊的问题,即拓扑任务并未在所有工作人员上运行,并且仅在与 Spout 相同的工作人员上运行。
我正在使用 shuffleGrouping 并在 2 个螺栓和 1 个喷口中配置了 6 个工作人员和总共 51 个执行程序。当我启动拓扑时,所有 6 个工作人员都按预期启动,但只有一个带喷口的工作人员正在完成所有工作。
我需要 2.2.0 的任何特殊配置吗,我的所有拓扑都可以在 1.0.3 版本中正常工作
作为一项测试,我也在运行 Strom-starter 的 ExclamationTopology,但看到相同的问题是只有一名工人在做所有的工作。
提前感谢您的帮助。
问候,
apache-kafka - Apache Storm Spout 没有向 Bolt 的所有执行者发出元组
Storm v1.2.2 我有一个有 6 个节点集群的环境,每个集群有 16 个核心。我已经部署了一个示例拓扑,它从具有 12 个分区的 kafka 主题中读取消息。
配置
我尝试向该 kafka 主题发布 20 条消息,因为最大 spout 挂起是 15,所以只有 15 条消息应该从 spout 获取并发出,但我发现只有 7 条消息被发送到 Bolt-A。在这 7 条消息被发送到 Bolt-B 之后,Bolt-A 从 spout 收到剩余的消息。
所以理想情况下,bolt-A 应该从 spout 获得 15 条消息,一旦这 15 条被确认,那么剩下的 5 条消息应该已经被拾取。但是我看到只收到了 7 条消息,并且我可以看到 8 个执行程序处于闲置状态,无所事事,是否我在风暴配置中遗漏了什么?我尝试使用 localOrSuffled 和 Suffled 分组,但很少有执行者总是空闲。有什么建议可以将工作平均分配给所有可用的执行者吗?
apache-storm - Apache Storm 元组在 10 分钟后超时,但 topology.message.timeout.secs 配置为 5 分钟
我们有一个 topology.message.timeout.secs = 300 秒的拓扑。最近,我们遇到了一个问题,即 spout 后的第一个 bolt 的容量达到了 ~2。bolt 开始处理元组的速度非常慢(它在 spout 发出元组 5 分钟后开始处理元组)。几分钟后,spout 发出元组,但在 bolt 开始处理之前,元组超时。
奇怪的是元组失败与发出之间的时间差是 10 分钟。
预期元组应该在 5 分钟后失败(配置为 300 秒)。
关于为什么没有真正考虑配置超时的任何想法/信息都会非常有帮助。是否有任何其他配置会影响元组超时?