Storm Ui错误kafka spout,不使用HDP
Posted
技术标签:
【中文标题】Storm Ui错误kafka spout,不使用HDP【英文标题】:Storm Ui error kafka spout, not using HDP 【发布时间】:2018-03-01 04:35:00 【问题描述】:我在我的机器上安装了 Storm 1.1.1,在另一台机器上我使用的是 Kafka 版本 0.10.0.1。这两个服务都与 Zookeeper 3.4.6 版连接
我成功部署了我的拓扑,如下所示:
public class SOTopology
public static void main (String[] args ) throws Exception
final String brokers = args[0];
final String kafkaTopic = args[1];
final String mongo_uri = args[2];
final String mongo_collection = args[3];
TopologyBuilder topology = new TopologyBuilder();
topology.setSpout("KafkaSpout",new KafkaSpout<>(KafkaSpoutConfig.builder(brokers, kafkaTopic).build()), 1);
topology.setBolt("FilterBolt", new Filterbolt(),1).shuffleGrouping("KafkaSpout");
topology.setBolt("TagCountBolt", new TagCountBolt(),1).shuffleGrouping("FilterBolt");
topology.setBolt("TopicBolt", new TopicBolt(),1).shuffleGrouping("FilterBolt");
topology.setBolt("MongoDBBolt",new MongoDBBolt(),1).shuffleGrouping("TagCountBolt").shuffleGrouping("TopicBolt");
Config conf = new Config();
conf.setDebug(true);
conf.put("mongo.uri", mongo_uri);
conf.put("mongo.collection", mongo_collection);
conf.setMaxSpoutPending(40);
conf.setNumWorkers(10);
conf.setDebug(true);
StormSubmitter.submitTopology("***Topology", conf, topology.createTopology());
当我转到我的 StormUI 时,我收到以下消息 Offset lags for kafka not supported for older versions. Please update kafka spout to latest version.
我没有使用 HDP,但我已经在使用最新的 Storm 版本,并且我的storm-clients.jar 和storm-kafka-client.jar 都适用于1.1.1 版。谁知道我该如何解决这个问题?
编辑:在可能的重复中,他们正在使用 HDP,他们通过更新他们的 HDP 集群来修复它。由于我没有在 HDP 上运行它,因此我无法真正更新我的 HDP 集群,而且我确信我的 Storm 是正确的版本。
【问题讨论】:
Storm UI throwing "Offset lags for kafka not supported for older versions. Please update kafka spout to latest version."的可能重复 @vatsalmevada 在他们使用 HDP 的可能副本中,他们通过更新他们的 HDP 集群来修复它。由于我没有在 HDP 上运行它,因此我无法真正更新我的 HDP 集群,而且我确信我的 Storm 是正确的版本。 您是否还确定您没有为storm-clients 和storm-kafka-client 提供多个jar(可能添加不同版本作为其他库的依赖项的一部分)? 是的,我反复检查了多次,以确保我只使用了正确版本的所需罐子。我正在从org.apache.storm.kafka.spout
导入以下KafkaSpout, KafkaSpotConfig
,这是我从storm-kafka-client-1.1.1.jar
获得的,并且那里没有其他版本
@SebastienPattyn 我看了看日志,显然 UI 仍然使用旧的 java 类 org.apache.storm.kafka.KafkaSpout
而不是使用新的 API org.apache.storm.kafka.spout.KafkaSpout
,所以当它尝试连接到 KafkaSpout 时出现错误,为了解决这个问题,我只是回滚到旧版本的 kafka (0.8.2.2) 并在我的 java 代码中使用旧的storm kafka API,现在它似乎可以工作了。
【参考方案1】:
如链接问题中所述:解决方案是升级到平台的最新版本。
如果您出于某种原因设法避免分发,这在提出问题时可能是不可能/不切实际的,但由于我们已经过了几年,现在肯定是可以升级的情况。 (而且可能已经有了)。
【讨论】:
以上是关于Storm Ui错误kafka spout,不使用HDP的主要内容,如果未能解决你的问题,请参考以下文章
使用 Kafka Spout 的 Kafka Storm 集成
kafka + storm 错误 Async loop died
storm问题记录 python 不断向kafka中写消息,spout做为消费者从kafka中读消息并emit给bolt,但是部分消息没有得到bolt的处理