问题标签 [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 回答
53 浏览

apache-storm - 自定义反序列化器不会被称为 apachestorm

风暴版本 - 1.0.6。

我为我的一个课程注册了一个自定义序列化程序。正如预期的那样,它的 write 方法被调用并成功运行。但是,尽管在下游螺栓中调用了执行,但我的自定义序列化程序的读取方法根本没有被调用。我在本地集群中对此进行测试,始终尝试将序列化设置为 true。

我的猜测是,由于某种原因,storm 对我的自定义序列化不满意,并将元组原样传递到下游而不进行序列化。我在下游螺栓中看到的字段的指针值与发出的相同。

我没有看到任何警告或错误。我怎么知道在这种情况下出了什么问题?我知道我可以获取源代码并进行调试,但是还有其他任何人认为会有所帮助的提示吗?

0 投票
0 回答
62 浏览

apache-storm - 设置螺栓以从 trident 拓扑中的其他螺栓的特定流中读取

我正在尝试编写一个具有多个螺栓的 TridentTopology。现在我想让一个螺栓注册到其他螺栓特定的流,如下所示。

我收到以下异常:

还使用 OutputFieldsDeclarer 的 declareStream 方法声明流

注册到其他螺栓特定流也可以在正常拓扑中工作。问题在于 Trident 拓扑。还有我们应该通过什么batchGroups

0 投票
1 回答
20 浏览

apache-storm - 在具有 2 个不同硬件的单个 Nimbus 上部署 2 个不同的拓扑

我今天使用了 2 套风暴拓扑,其中一套是 24/7 全天候运行的,它自己工作。
另一个是按需部署,并处​​理更大的数据负载。
截至今天,我们有 N 个主管实例,全部来自相同类型的硬件(CPU/RAM),我希望我的按需拓扑能够在更强大的硬件上运行,但据我所知,无法控制哪个主管被分配到哪个拓扑。
因此,如果我无法控制它,则 24/7 拓扑可能会为自己分配一个更强大的工作人员。

任何想法,如果有这样的方法?提前致谢

0 投票
1 回答
42 浏览

java - LocalCluster 中的不同拓扑是否可以在 apache-storm 中具有相同名称的流和螺栓

我需要在 LocalCluster 模式下运行多个风暴项目。

当我运行项目 A、B 和 C 时,其他项目的 spout 会以某种方式读取流。这可能是什么原因。

PS:Storm 的新手,试图从文档中找出,但无法找出任何具体的东西。

0 投票
1 回答
205 浏览

apache-storm - 如何在 Apache Storm Cluster 中维护分布式 HashMap

我们在 Apache Storm 中有一个用例,我们需要从源系统获取数据,然后对收到的元组执行一些操作,但还想在数据库中查找数据。但是每次对数百万条记录进行数据库调用是不可行的。那么有没有一种方法可以在启动时加载分布式哈希映射,当元组在 Bolt 或 Spout 中处理时,首先查找此哈希映射,如果 HashMap 中不存在该值,则进行数据库调用并更新应该可以访问的相应地图。

0 投票
2 回答
320 浏览

apache-storm - Storm 拓扑不以 1200 的并行提示开始

我有一个带有 3 个螺栓(A、B、C)的风暴拓扑,其中中间螺栓平均耗时 450 毫秒,其他两个螺栓不到 1 毫秒。

我能够使用以下并行提示值运行拓扑:

但是当我将 B 的并行提示增加到 1200 时,拓扑不会启动。

在拓扑日志中,我看到了多次加载执行程序的日志:B,如下所示:

但是在工作进程之间重新启动。我在拓扑日志或风暴日志中看不到任何错误。以下是风暴日志,当工人重新启动时:

这种情况一直在发生,并且拓扑永远不会重新启动,当 Bolt:B 的并行提示为 700 时,它曾经完美地启动,没有其他变化。

我在这里看到一个有趣的日志,但还不确定这意味着什么:

工作进程 766258fe-a604-4385-8eeb-e85cad38b674 退出,代码:143

有什么建议么?

编辑:

配置:

编辑:

strace -fp PID -e trace=read,write,network,signal,ipcin gist的日志。

还不能完全理解它,从中看一些相关的东西:

[pid 3362] open("/usr/lib/locale/UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (没有这样的文件或目录)

[pid 3362] 杀死(1487,SIGTERM)= 0

[pid 3362] 关闭(1)

0 投票
1 回答
69 浏览

java - 自从我们开始拓扑后如何接收一个滴答元组?

我有一个在集群中运行的拓扑,它每小时接收一个滴答元组,我们面临的问题是,当我们启动拓扑时,我们必须等待一个小时才能接收到它,并且从拓扑接收到它的那一刻起我们就想要它开始。

自从我们开始拓扑以来,有没有办法接收滴答元组?

没有办法吗?有没有办法手动向螺栓发送一个刻度元组?

谢谢你的帮助。

0 投票
2 回答
1520 浏览

performance - 在 Storm 中增加拓扑的分配内存

我有一个 10 节点集群,每台机器都有 8 GB RAM,当我运行我的拓扑时,分配的内存总是与工作人员的数量成正比。每个工作人员大约占用 1 GB 的内存。我想为我尝试在storm.yaml中设置的每个worker分配2 GB,worker.childopts: "-Xmx6g -Xms6g"因为我在每个节点中运行三个worker。但是分配的内存减少到 1 GB 以下。

如何更好地调整我的拓扑?

我的一个螺栓出现以下错误

java.lang.OutOfMemoryError:java.nio.HeapByteBuffer.(HeapByteBuffer.java:57) 处的 Java 堆空间 java.nio.ByteBuffer.allocate(ByteBuffer.java:335) 处 org.apache.kafka.common.memory.MemoryPo

0 投票
1 回答
287 浏览

java - Apache Storm:storm-kafka-monitor 脚本抛出异常

我已经在本地设置了一个 Apache Storm 集群并提交了一个拓扑,该拓扑在Storm UI. 一旦一切都启动并运行,我会在ui.log文件中收到以下异常。该错误与storm-kafka-monitor哪个是 bash 脚本有关,我在 Windows 上运行它。
任何帮助将不胜感激。提前致谢 :)

0 投票
0 回答
590 浏览

apache-storm - 在风暴拓扑和工作人员重新启动中获取与 Netty 客户端相关的错误

我有一个带有 3 个螺栓(A、B、C)的风暴拓扑,其中中间螺栓平均耗时 450 毫秒,其他两个螺栓不到 1 毫秒。

我在两台机器上运行具有以下并行提示值的拓扑:

拓扑启动几分钟后出现以下错误:

在工人日志中:

2018-07-04T20:16:28.835+05:30 客户端 [错误] 丢弃 7 条消息,因为 Netty 客户端到 Netty-Client-/ip:6700 正在关闭

在主管日志中:

我在这里这里看到了类似的问题,我对此有一些疑问:

  1. 为什么会出现此错误以及如何解决?
  2. 如何从 Storm 中获取更多的调试信息,我已经设置好了conf.setDebug(true)
  3. 对于 n 台机器上的螺栓,是否有一些限制/指导方针?

编辑:

记录strace -fp PID -e trace=read,write,network,signal,ipcin gist。一些相关的外观部分是发生上述事情时,但是我SIGSEGV在 strace 输出中看到了很多地方:

工作进程的 strace 输出在这里,相关的日志在这里:

编辑2:

还有这个问题:工作日志中的连接被拒绝错误 - apache 风暴:作为标准答案,未设置storm.local.hostname可能会导致它,但它已经为我设置了。

此处提交的另一个错误具有类似的网络错误,该错误也仍未解决。