问题标签 [apache-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.

0 投票
1 回答
22 浏览

apache-storm - Apache Storm 将任务分配给同一个执行线程

我一直在为我的一个用例探索 Apache Storm。Spout 将从我自己的 kafka 实现中读取数据,并将其传递给 bolts。

我的拓扑对单个消费者组的工作速度更快。如果我增加拓扑内的消费者组的数量,我会看到处理速度很慢,尽管我有专用于所有消费者组的每个分区的 spout 和 bolts。

当我调试时,我发现在我的处理过程中发生了更多的上下文切换,因此记录了处理螺栓的线程名称。我可以看到,有时不同的执行器线程传递相同的螺栓 ID。

我怀疑因此可能会发生上下文切换,并且由于 cpu 线程缓存未命中,延迟可能会增加。

我的假设是否正确。如果这是这种行为,是否有任何选项可以通过相同的执行线程设置任务,而不是将其传递给另一个执行线程。

0 投票
0 回答
20 浏览

apache-storm - 在 Apache Storm 中的 python bolt 中勾选元组

我想在 Apache Storm 的 python shell bolt 中使用刻度元组。有没有办法做到这一点?我的拓扑结构的主要部分是用 java 编写的,其中有一个 python bolt。

0 投票
0 回答
15 浏览

java - 如果我们对拓扑 jar 和 Storm 有不同版本的依赖项,那么当在服务器上启动拓扑时,Storm 将使用哪个版本的 jar

我正在尝试将我的风暴拓扑从风暴 1.2.3 迁移到 2.0.0。

如果我对 pom 使用任何依赖项,我会感到困惑,并且这个依赖项将与 Storm 自带的库发生冲突。

使用storm jar CLI 命令启动拓扑。

0 投票
0 回答
7 浏览

apache-storm - 在 Apache Storm 中,如何确定组件(spout/bolt)是否发生故障并重新启动?

我在 Apache Storm 集群上运行一个拓扑,我想保留一个专门用于执行一些与状态相关的清理的螺栓,以防喷口发生故障(注意:喷口的并行度为 5,所以如果一个实例发生故障,我需要具体信息)

我怎样才能确定一个喷口是否下降并被带回?如何确定哪个 spout 实例(在 5 个中)发生故障?

0 投票
0 回答
49 浏览

apache-storm - 在 Storm 2.2.0 中使用 Flux.main() 以本地模式运行拓扑

我们有一些用 1.0.6 编写的 Storm 拓扑,并且正在测试将它们转换为 2.2.0。

在 1.0.6 中,我们有如下类,用于在 IDE 中运行/调试:

在 2.2.0 世界中做同样的事情没有运气,POM 有:

尝试了一些事情(将“--local”更改为“local”等),但最新尝试出现以下错误。是否仍然可以使用 Flux.main() 来复制 1.0.6 中发生的事情(如果是这样,将感谢语法帮助)还是我们需要以编程方式切换到另一种方式?

0 投票
0 回答
33 浏览

java - 使用 Apache STORM 的分布式矩阵

我想知道如何使用 Apache STORM 实现矩阵乘法程序。我之前用 Spark 尝试过,但我无法弄清楚如何使用不同的框架(如 STORM)来运行相同的东西。

0 投票
1 回答
26 浏览

java - 来自螺栓的 Apache Storm 静态变量引用

我的 Storm 拓扑中的一个 Bolt 引用了实用程序类中的一个静态变量,并且对于在工作进程上处理的每个元组,这个静态变量是否保持不变。

0 投票
0 回答
31 浏览

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 秒)。

关于为什么没有真正考虑配置超时的任何想法/信息都会非常有帮助。是否有任何其他配置会影响元组超时?

0 投票
0 回答
22 浏览

apache-kafka - 是否可以通过 apachestorm 发送和接收 kafka 标头?

我使用 apachestorm 作为分发系统来消耗和产生高负载的 Kafka 消息。到目前为止,我只发送了彻底 apache Storm 的消息,但现在我正试图通过 Storm 添加 Kafka 标头和消息正文。我想知道apache风暴是否支持这个?

0 投票
0 回答
12 浏览

apache-storm - 双 Nimbus 设置时 Apache Storm Nimbus 容错发生变化。(2.2.0)

根据 Storm文档,守护进程故障不应影响主管中的工作进程。

当单个 nimbus 被杀死时,这适用于我的拓扑(在 2.2.0 版上)。主管继续处理。(但是,一个新启动的 nimbus 容器(由 docker swarm)之后不会自动成为新的 nimbus。)

使用 2 个 nimbus 容器(在 swarm 集群中将 nimbus 服务的复制设置为 2 个):杀死领导者 nimbus 容器会导致运行拓扑中的异常和崩溃。另一个 nimbus 容器成功成为新的领导者,并且自动重新启动的其他 nimbus 容器现在也在 STORM UI 中列出。

你们知道为什么使用 2 个 nimbus 节点会改变杀死单个节点对运行拓扑的影响吗?

风暴.yml:

Nimbus 种子设置为 nimbus 服务 (nimbus) 的名称,拓扑的最小复制因子为 2

非常感谢