【问题标题】:Spout is not reading/emitting data in storm cluster modeSpout 在风暴集群模式下不读取/发送数据
【发布时间】:2017-03-26 11:33:08
【问题描述】:

我在本地和集群模式下都使用 apachestorm 1.0.0。对于 spout,我正在读取来自 kafka 主题的数据(我使用的是 kafka 2.11-0.8.2.1)。当我在本地模式下使用 Storm 时,Spout 正在从 kafka 主题读取数据并发出数据,但是当我在集群模式下运行 Storm 时,Storm Spout 没有发出任何数据。

我读取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);

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

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

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

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

知道为什么拓扑喷口在集群模式下没有发出任何数据吗? 任何帮助将不胜感激。

【问题讨论】:

    标签: apache-storm


    【解决方案1】:

    按照您的步骤,我没有看到您在将拓扑提交到生产/集群模式之前启动了 nimbus、supervisor、UI,然后在 Storm UI 中验证此集群,如果有任何错误,还要检查日志文件。

    请分享此信息。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • @user2720864:我正在将 Storm 1.0.0 与 Elasticsearch 和 Kibana 5.2.2 集成。但问题是storm 1.0.0使用的log4j版本不兼容Elastic和Kibana。所以我手动更新了storm库文件夹中的log4j。简而言之,问题不在于我的 Storm 配置,而在于我使用的 Kibana 版本和弹性搜索。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-09
        • 2020-09-06
        相关资源
        最近更新 更多