Java 无法获取卡夫卡的偏移滞后。原因:org.apache.kafka.shade.common.config.ConfigException
我正在本地机器上测试storm+kafka集成。我有风暴版1.2.3和卡夫卡2.5.0。我正在使用来自的代码 作为我的测试代码 无论何时提交拓扑,都会出现以下错误Java 无法获取卡夫卡的偏移滞后。原因:org.apache.kafka.shade.common.config.ConfigException,java,apache-kafka,apache-storm,Java,Apache Kafka,Apache Storm,我正在本地机器上测试storm+kafka集成。我有风暴版1.2.3和卡夫卡2.5.0。我正在使用来自的代码 作为我的测试代码 无论何时提交拓扑,都会出现以下错误 Unable to get offset lags for kafka. Reason: org.apache.kafka.shaded.common.config.ConfigException: Invalid value org.apache.kafka.common.serialization.StringDeseriali
Unable to get offset lags for kafka. Reason: org.apache.kafka.shaded.common.config.ConfigException: Invalid value
org.apache.kafka.common.serialization.StringDeserializer for configuration value.deserializer:
Class org.apache.kafka.common.serialization.StringDeserializer could not be found.
at org.apache.kafka.shaded.common.config.ConfigDef.parseType(ConfigDef.java:671)
at org.apache.kafka.shaded.common.config.ConfigDef.parse(ConfigDef.java:418)
at org.apache.kafka.shaded.common.config.AbstractConfig.<init>(AbstractConfig.java:56)
at org.apache.kafka.shaded.common.config.AbstractConfig.<init>(AbstractConfig.java:63)
at org.apache.kafka.shaded.clients.consumer.ConsumerConfig.<init>(ConsumerConfig.java:414)
at org.apache.kafka.shaded.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:584)
at org.apache.kafka.shaded.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:566)
at org.apache.storm.kafka.monitor.KafkaOffsetLagUtil.getOffsetLags(KafkaOffsetLagUtil.java:230)
at org.apache.storm.kafka.monitor.KafkaOffsetLagUtil.main(KafkaOffsetLagUtil.java:144)
我遇到了同样的问题,并认为
storm-kafka-monitor-1.2.3
可能是造成问题的原因,因为它使用maven shade plugin
重新定位原始kafka软件包。因此,KafkaConsumer
在运行时发生冲突。这是很明显的
然而,它似乎在
storm-kafka-monitor-2.0.0
中得到了解决。我还没有尝试过,如果我成功了,我会更新我的线程。我遇到了同样的问题,我认为storm-kafka-monitor-1.2.3
可能会导致问题,因为它使用maven shade plugin
重新定位原始kafka软件包。因此,KafkaConsumer
在运行时发生冲突。这是很明显的
然而,它似乎在
storm-kafka-monitor-2.0.0
中得到了解决。我还没有尝试,如果我成功了,我会更新我的线程。这是否回答了你的问题?您应该尝试使用StringDeserializer.class.getName()来防止config@OneCricketeer是的,我也试过。这没有回答你的问题吗?您应该尝试使用StringDeserializer.class.getName()来防止config@OneCricketeer是的,我也试过。不起作用
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");