2017-10-11 90 views
0

我在單個AWS EC2實例中安裝了kafka和zookeeper。 我已將服務器的主機名更改爲kafka。 當我創建主題運行良好:卡夫卡控制檯消費者無法連接到AWS EC2服務器上的zookeeper服務器

/home/kafka/kafka/bin/kafka-topics.sh --create --zookeeper kafka:2181 --replication-factor 1 --partitions 1 --topic test 
Created topic "test". 

kafka-console-producer.sh也運行良好:

/home/kafka/kafka/bin# /home/kafka/kafka/bin/kafka-console-producer.sh --broker-list kafka:9092 --topic test 
[2017-10-11 20:58:13,924] WARN Property topic is not valid (kafka.utils.VerifiableProperties) 
testing 

但卡夫卡生產者超時:

[email protected]:~$ /home/kafka/kafka/bin/kafka-console-consumer.sh --zookeeper kafka:9092 --topic test --from-beginning 
Exception in thread "main" org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 6000 
at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:880) 
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98) 
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:84) 
at kafka.consumer.ZookeeperConsumerConnector.connectZk(ZookeeperConsumerConnector.scala:171) 
at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:126) 
at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:143) 
at kafka.consumer.Consumer$.create(ConsumerConnector.scala:94) 
at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:145) 
at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala) 

卡夫卡,zookeeper和broker(一個)在同一個ec2服務器上運行,並且它們具有默認配置。 我在這個安裝中丟失了什麼?

+0

您的消費者的ZooKeeper端口應爲2181. – vahid

+0

謝謝vahid,您可以添加該答案作爲答案。這工作:/ home/kafka/kafka/bin/kafka-console-consumer.sh --zookeeper kafka:2181 --topic test --from-beginning –

回答

1

的問題是,當你使用舊的消費者(和使用--zookeeper參數),應提供的ZooKeeper端口(2181)。

但是,請注意,舊的消費者現在已棄用,強烈建議使用新消費者。請參閱Mickael Maison的答案以獲取更多信息。

2

新的消費者(如生產者)不再連接到動物園管理員,它只連接到卡夫卡。

通過--bootstrap-server更換--zookeeper在您的命令:

/home/kafka/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test --from-beginning