Kafka报错总结

231 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情

  • 启动kafka connect worker进程报错 执行[root@localhost kafka_2.12-2.1.0]# bin/connect-distributed.sh config/connect-distributed.properties &时报错: ERROR Stopping due to error (org.apache.kafka.connect.cli.ConnectDistributed:117)\ java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;\         at org.reflections.Reflections.expandSuperTypes(Reflections.java:380)\         at org.reflections.Reflections.<init>(Reflections.java:126)\         at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader$InternalReflections.<init>(DelegatingClassLoader.java:404)\         at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanPluginPath(DelegatingClassLoader.java:304)\         at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins(DelegatingClassLoader.java:242)\         at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initPluginLoader(DelegatingClassLoader.java:190)\         at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initLoaders(DelegatingClassLoader.java:183)\         at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:61)\         at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:74)

查了网上的一些说法是guava的jar版本冲突问题,查看了一下kafka安装包中libs目录下的jar,果然发现有两个guava版本不一样,所以我们删掉低版本即可。

删掉之后重新启动kafka  connect,这次就成功了:

  • [B cannot be cast to java.lang.String异常报错  

在kafka的branch应用中出现了上述异常,原来是这样写的:

properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

改成下面这样就ok了:

properties.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());
properties.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());

在流处理中的配置要用StreamsConfig,在生产者和消费者中配置使用key.serializer。

  • Error when sending message to topic wyh-elk-kafka-topic with key: null

在kafka中向topic中发送消息报错:

[root@localhost kafka_2.12-2.1.0]# bin/kafka-console-producer.sh --broker-list 192.168.184.128:2181 --topic wyh-elk-kafka-topic\

wyh
[2019-03-13 21:21:06,457] ERROR Error when sending message to topic wyh-elk-kafka-topic with key: null, value: 3 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

看了网上的解决方案都不对,后来仔细检查了一下发现是端口号写错了,应该是9092。

其实根据错误信息中提示的错误信息连接超时就应该想到是连接出现问题了,希望下次能想到排查错误的方向。