问题标签 [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.
apache-storm - 如何获取与 apachestorm 中的每个执行程序相关联的任务列表?
我正在探索 Apache Storm。我需要知道如何获取与 apachestorm 中节点中的每个执行程序相关联的任务列表。例如,考虑一个具有 1 个 spout 和 2 个 bolt 的简单拓扑:
喷口 -> Bolt1 -> Bolt2
如果有一个 3 节点集群,并且 numworkers = 3,有没有办法确定任务如何与执行者关联和分组?
apache-storm - 获取 Storm Nimbus 的“No available slots for topology”错误
我是apache风暴的新手。我正在尝试建立一个本地风暴集群。我使用以下链接设置了 zookeeper ,当我启动 zookeeper 时它运行良好。但是当我使用start nimbus命令启动 nimbus 时,我看到一个错误No slot available for topology在nimbus.log文件中。
我的nimbus.log文件:
这是我的storm.yml:
谁能告诉我我错过了什么配置,如果有的话?请让我知道是否需要任何其他信息来调试它?
我的环境:
- Apache-storm-2.1.0
- Apache-zookeeper-3.6.1
解决方案:
运行以下命令:
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 Storm 并行性如何工作?
我是 Apache Storm 的新手,想知道并行提示是如何工作的。
例如,我们有一个包含两个元组 <4>、<6> 的流,一个 spout,每个执行程序只有一个任务,我们有一个螺栓来对元组执行一些操作,并行提示为 2,所以我们有两个执行程序这个螺栓即A和B,关于这个,我有3个问题。
- 考虑到上述情况,有可能我们包含值 4 的元组由 A 处理,而另一个包含值 6 的元组由 B 处理。
- 如果以这种方式进行处理,即问题(1)中提到的,那么它不会影响顺序重要的操作。
- 如果没有以这种方式进行处理,则意味着两个元组都将转到同一个执行程序,那么并行性有什么好处。
eclipse - Windows 中 Eclipse 中的 Apache Storm Starter 2.2.0 - 尝试从 localhost NimbusLeaderNotFound 获取领导者 nimbus 信息时出现异常
我已经下载了 Apache Storm 2.2.0 的 zip 文件。我在 Windows 10 中将storm-starter maven 项目导入eclipse。做了一个Maven--> 更新项目我的项目没有任何错误。我没有对 pom.xml 做任何更新。我执行了 WordCountTopology.java 我收到错误 NimbusLeaderNotFoundException。我也在停止防火墙后尝试过。
Windows 10 中的相同 Eclipse,在不同的 Eclipse 项目下,对于以前的 Storm 版本的代码(版本 0.0.1)Zookeeper 启动,nimbus 启动正常。我能够得到输出。我没有在本地/eclipse中做任何集群配置。0.0.1 版的成功拓扑
scheduler - 元数据调度程序的 Apache Storm 问题
我尝试使用元标记在 Apache Storm 中编写调度程序,以将特定任务调度给特定的主管。我在supervisor 1的storm.yaml文件中使用了如下代码:
并在运行以下代码部分时:
}
我得到的唯一消息是“主管元是:null”。我试图改变几件事,但我无法检索我的主管元数据。它总是为空。有什么想法吗?
先感谢您。妮可
dependency-injection - Apache Storm 拓扑中的依赖注入
小背景:我正在使用 Apache Storm 开发拓扑,我想为什么不在其中使用依赖注入,但我不确定当拓扑部署到集群时它在集群环境中的行为。我开始寻找关于 DI 是否是在 Storm 拓扑中使用的好选择的答案,我遇到了一些关于 Apache Spark 的线程,其中提到序列化将成为问题,并看到一些针对 apache Storm 的响应。所以最后我决定用 google guice 编写一个示例拓扑,看看会发生什么。
我用两个螺栓编写了一个示例拓扑,并使用 google guice 来注入依赖项。第一个bolt发出一个tick tuple,然后第一个bolt创建消息,bolt在日志上打印消息并调用一些相同的类。然后这个消息被发送到第二个螺栓和同样的打印逻辑。
第一个螺栓
第二个螺栓
注入依赖的类
用于绑定的接口
接口的实现
同样的方式另一个类通过 DI 接收依赖项
另一个绑定接口
第二个接口的实现
模块类
这里没什么特别的,只有两个螺栓和几个用于 DI 的类。我将它部署在服务器上,它工作得很好。但是,问题/问题是我必须Injector
在每个螺栓中进行初始化,这让我质疑它的副作用是什么?
这个实现很简单,只有 2 个螺栓。如果我有更多螺栓怎么办?如果我必须在所有螺栓中初始化 Injector,它将对拓扑产生什么影响?
如果我尝试在准备方法之外初始化 Injector,我会收到序列化错误。
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,但看到相同的问题是只有一名工人在做所有的工作。
提前感谢您的帮助。
问候,