链接kafka抛错
来源:8-8 Flink对接Kafka作为Source使用

小小de
2019-11-10
Exception in thread “main” org.apache.flink.runtime.client.JobExecutionException: Job execution failed.
at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:146)
at org.apache.flink.runtime.minicluster.MiniCluster.executeJobBlocking(MiniCluster.java:647)
at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:123)
at org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.scala:654)
at com.imooc.flink.course08.KafkaConnectorConsumerApp$.main(KafkaConnectorConsumerApp.scala:26)
at com.imooc.flink.course08.KafkaConnectorConsumerApp.main(KafkaConnectorConsumerApp.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
请问老师,这个是什么原因?
4回答
-
小小de
提问者
2019-11-10
server.properties配置
listeners=PLAINTEXT://192.168.2.110:9092
advertised.listeners=PLAINTEXT://192.168.2.110:9092
问题解决
10 -
小小de
提问者
2019-11-10
网上查了一下,是这个原因吗?
原因是发布到zookeeper的advertised.host.name如果没有设置,默认取java.net.InetAddress.getCanonicalHostName().值,被用于生产端和消费端。因此外部网络或者未配置hostname映射的机器访问kafka集群时就会有网络问题了。
原因是kafka客户端连接到broker是成功的,但连接到集群后更新回来的集群meta信息是错误的即是会返回的是节点的hostname,解决办法就是手动配置advertised.host.name和advertised.port,2个参数都必须配置,重启问题解决:
advertised.host.name=10.0.0.100
advertised.port=909210 -
小小de
提问者
2019-11-10
客户端生产和消费链接正常
./kafka-console-producer.sh --broker-list 192.168.2.110:9092 --topic test
>ss
./kafka-console-consumer.sh --bootstrap-server 192.168.2.110:9092 --topic test
ss
012019-11-10 -
Michael_PK
2019-11-10
你的kafka和zk通信应该有问题,导致超时。你可以用kafka的客户端生产和消费测试验证下
00
相似问题
回答 1
回答 2