问题描述
我使用的是 Apache Storm 2.2.0。我的 spout 读取一个 json 文件,并将其发送到一个 Bolt,将它存储到 ES。我的 pom.xml 有以下依赖项:
<dependencies>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>2.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.6.1</version>
</dependency>
</dependencies>
我的storm.yaml
:
storm.zookeeper.servers:
- "localhost"
# - "server1"
# - "server2"
#
nimbus.seeds: ["localhost"]
#
storm.zookeeper.port: 2181
nimbus.host: "127.0.0.1"
storm.local.dir: "/tmp/storm-data"
ui.port: 8082
java.library.path: "/usr/local/lib"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
我使用以下命令提交我的拓扑:
storm jar --jar /home/john/.m2/repository/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar,/home/john/.m2/repository/org/elasticsearch/client/elasticsearch-rest-client/7.6.1/elasticsearch-rest-client-7.6.1.jar target/my-1.0-SNAPSHOT.jar MyTopology
我的拓扑已成功提交给 Storm,因为我可以从 Storm UI 进行验证,但是,我没有看到从我的 spout 发出/传输的元组(因此我的 bolt 也没有)。
使用 LocalCluster
一切正常,我可以验证插入到我的 ES 索引中的元组。使用
StormSubmitter.submitTopology(TOPOLOGY_NAME,conf,topology);
虽然,并使用上述命令提交它,我也没有看到任何错误(例如,它找不到输入的 json 文件)。我确实看到工人、主管、执行者和任务的数量 > 0,但没有发出/传输元组。
我在同一台机器上运行 storm nimbus
和 storm supervisor
。我是否需要在另一台机器上启动另一个主管才能工作?它应该只与一名主管一起工作。
我错过了什么吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)