KafkaException:Fetching topic metadata with correlation id 0 for topics [Set(test)]

本地链接远程Kafka异常

远程机器fp-bd13搭建最新版Kafka (自带zookeeper),按照文档默认配置启动。远程新建producer和costumer一切正常。
本地spark链接:

JavaPairReceiverInputDStream<String, String> kafkaStream =KafkaUtils
                                    .createStream(jssc,"fp-bd13:2181", "0", topicMap);

测试出现:

[ ERROR ]  fetching topic metadata for topics [Set(test)] from broker 
[ArrayBuffer(id:0,host:localhost,port:9092)] failed 
kafka.common.KafkaException: 
Fetching topic metadata with correlation id 0 for topics [Set(test)] 
from broker [BrokerEndPoint(0,localhost,9092)] failed 
(kafka.client.ClientUtils$) 

看到这个日志觉得有点奇怪,为什么会有localhost,我们配置的明明是fp-bd13的zookeeper,但是9092的端口是kafka所监听的。从而想到可能是链接kafka的配置存在问题。 kafka_2.11-1.1.0/config/server.propertieslisteners 属性默认是 localhost:9092 ,由于远程链接localhost并不是本机,所以这里需要制定下我们IP和端口:listeners=PLAINTEXT://fp-bd13:9092 。然后重启 kafka 再运用spark应用就能成功链接了。

成功后我们在远程创建一个生产者,用来传递消息给spark应用:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

执行命令后却不停的警告:

[2018-04-17 10:08:48,158] WARN [Producer clientId=console-producer] Connection to node -1 could not be established. 
Broker may not be available. (org.apache.kafka.clients.NetworkClient)

意思是没有客户端链接这个生产者,发消息本地应用也收不到。之前远程测试又是没问题的,从而想到又是网络问题。这里我们要修改--broker-listfp-bd13:9092。然后就没有警告了。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyoc97/article/details/79972434
个人分类: Spark Kafka MQ
上一篇Spark JavaPairRDD按值排序
下一篇presto导数
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭