Spout不以风暴群集模式读取/发送数据

时间:2017-03-26 11:33:08

标签: apache-storm

我在本地和群集模式下都使用apache storm 1.0.0。对于鲸鱼喷水,我正在阅读kafka主题的数据(我正在使用kafka 2.11-0.8.2.1)。 Spout正在从kafka主题读取数据,并在我在本地模式下使用storm时发出数据,但是当我在集群模式下运行storm时,风暴喷口没有发出任何数据。

我读取kafka数据的拓扑实现如下:

brokerHosts = new ZkHosts(kafkaZookeeper);
SpoutConfig kafkaConfig = new SpoutConfig(brokerHosts, kafkaTopicIn, "", "storm");
kafkaConfig.scheme = new SchemeAsMultiScheme(new StringScheme());
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("spout", new KafkaSpout(kafkaConfig), 2);

我的风暴配置文件(conf / storm.yaml):

storm.zookeeper.servers:
- "localhost"
storm.zookeeper.port: 2181
nimbus.seeds: ["localhost"]

storm.local.dir: "/tmp/storm"

在集群模式下提交Storm拓扑时,我也没有收到任何错误。

任何想法为什么拓扑spout不会在集群模式下发出任何数据? 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

作为您的步骤,我没有看到您在提交拓扑到生产/集群模式之前启动了nimbus,supervisor,UI,然后在风暴UI中验证此集群,如果出现任何错误也检查日志文件。

请分享此信息。

答案 1 :(得分:0)

在向群集提交拓扑之前,您需要启动nimbus和supervior。 如果这样做,你将在风暴中找到日志文件夹。您可以从那里检查日志文件并继续。

答案 2 :(得分:0)

感谢大家的宝贵建议。 它现在正在工作。 log4j logger API版本存在一些问题,我使用的是storm-1.0.0拓扑。此log4j在本地模式下没有引起任何问题,但在群集模式下导致问题。