卡夫卡消费者和生产者抛出错误

时间:2018-05-28 15:42:29

标签: apache-kafka

我尝试在Kafka-consumer中传递单词时遇到错误, 我输入的命令

console-1 :(对于制作人)

    export PATH=$PATH:/usr/hdp/current/kafka-broker/bin

kafka-topics.sh --create --zookeeper ip-172-31-20-58.ec2.internal:2181 --replication-factor 1 --partitions 1 --topic testuday1234

kafka-console-producer.sh --broker-list ip-172-31-20-58.ec2.internal:6667 --topic testuday1234

console-2 :(对于消费者而言)

export PATH=$PATH:/usr/hdp/current/kafka-broker/bin
kafka-console-consumer.sh --zookeeper localhost:2181 --topic testuday1234 --from-beginning

请帮我解决这些错误

我在Producer控制台中遇到错误:

[udaychitukula6587 @ ip-172-31-38-183~] $ kafka-console-producer.sh --broker-list ip-172-31-20-58.ec2.internal:6667 - 主题testuday1234 嗨 [2018-05-28 15:27:36,761] WARN获取元数据时出错[{TopicMetadata for topic testuday1234 - > 对于主题[testuday1234],由于kafka.common.LeaderNotAvailableException}]没有主题testuday1234的分区元数据:class kafka.common.LeaderNotAvailableExcep (kafka.producer.BrokerPartitionInfo) [2018-05-28 15:27:36,774] WARN获取元数据时出错[{TopicMetadata for topic testuday1234 - > 对于主题[testuday1234],由于kafka.common.LeaderNotAvailableException}]没有主题testuday1234的分区元数据:class kafka.common.LeaderNotAvailableExcep (kafka.producer.BrokerPartitionInfo)

我在消费者控制台中遇到错误:

[udaychitukula6587 @ ip-172-31-38-183~] $ kafka-console-consumer.sh --zookeeper localhost:2181 --topic testuday123 --from-beginning {metadata.broker.list = IP-172-31-20-58.ec2.internal:6667,IP-172-31-53-48.ec2.internal:6667,IP-172-31-60-179.ec2 .internal:6667,request.timeout.ms = 30000,client.id = c onsole-consumer-63526,security.protocol = PLAINTEXT} {metadata.broker.list = IP-172-31-20-58.ec2.internal:6667,IP-172-31-53-48.ec2.internal:6667,IP-172-31-60-179.ec2 .internal:6667,request.timeout.ms = 30000,client.id = c onsole-consumer-63526,security.protocol = PLAINTEXT}

1 个答案:

答案 0 :(得分:1)

我在这里注意到了一些事情。

首先,在Kafka的较新版本(我认为是0.10.1)中,对于控制台消费者,我们需要使用--bootstrap-server选项而不是--zookeeper。你能否确认你正在使用的版本?并尝试使用--bootstrap-server选项运行使用者命令?

第二,对于这种情况下的制作人,我建议检查3件事以确认问题的位置:

  1. Kafka集群的领导者由zookeeper选举,因此可能需要运行zookeeper-client shell来查看Kafka集群中是否存在活动控制器(在znode路径中 - {{ 1}})。
  2. 尝试运行/brokers/ids/[brokerId]命令以查看主题是否具有活动的前导分区,即命令输出中的Kafka-topics --describe --topic列不应具有Leader。我以前碰到过这个。
  3. 最后一个是关于代理的端口号,请您检查并确认代理是否实际上正在侦听该端口。您将在代理上的server.properties文件中找到此信息(Nonelisteners)。我发现this post在用户遇到端口6667问题时可能会有用。
  4. 我希望这有帮助!