我在本地和群集模式下都使用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不会在集群模式下发出任何数据? 任何帮助将不胜感激。
答案 0 :(得分:0)
作为您的步骤,我没有看到您在提交拓扑到生产/集群模式之前启动了nimbus,supervisor,UI,然后在风暴UI中验证此集群,如果出现任何错误也检查日志文件。
请分享此信息。
答案 1 :(得分:0)
在向群集提交拓扑之前,您需要启动nimbus和supervior。 如果这样做,你将在风暴中找到日志文件夹。您可以从那里检查日志文件并继续。
答案 2 :(得分:0)
感谢大家的宝贵建议。 它现在正在工作。 log4j logger API版本存在一些问题,我使用的是storm-1.0.0拓扑。此log4j在本地模式下没有引起任何问题,但在群集模式下导致问题。