我根据他们的网站安装了kafka的稳定版本(0.8.1和2.9.2 scala),并使用3节点zookeeper集成(3.4.6)运行它。我试图创建一个测试主题,但一直看到没有为该主题的分区指定引线:
[kafka_2.9.2-0.8.1]$ ./bin/kafka-topics.sh --zookeeper <zookeeper_ensemble> --describe --topic test-1
Topic:test-1 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: test-1 Partition: 0 **Leader: none** Replicas: 0,1,2**Isr:**
我尝试使用控制台生成器写入主题,但遇到了leadernotavailableexception:
[kafka_2.9.2-0.8.1]$ ./kafka-console-producer.sh --broker-list <broker_list> --topic test-1
hello world
[2014-04-22 11:58:48,297] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,321] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,322] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test-1 (kafka.producer.async.DefaultEventHandler)
[2014-04-22 11:58:48,445] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,467] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,467] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test-1 (kafka.producer.async.DefaultEventHandler)
[2014-04-22 11:58:48,590] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,612] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,612] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test-1 (kafka.producer.async.DefaultEventHandler)
[2014-04-22 11:58:48,731] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,753] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,754] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test-1 (kafka.producer.async.DefaultEventHandler)
[2014-04-22 11:58:48,876] WARN Error while fetching metadata [{TopicMetadata for topic test-1 ->
No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException}] for topic [test-1]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
[2014-04-22 11:58:48,877] ERROR Failed to send requests for topics test-1 with correlation ids in [0,8] (kafka.producer.async.DefaultEventHandler)
[2014-04-22 11:58:48,878] ERROR Error in handling batch of 1 events (kafka.producer.async.ProducerSendThread)
kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.
at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:90)
at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104)
at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87)
at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67)
at scala.collection.immutable.Stream.foreach(Stream.scala:547)
at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66)
at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44)
我还应该说,这是工作最初的几天,然后突然之间,任何一个主题,创建了这个失踪领导人的问题。
12条答案
按热度按时间9wbgstp71#
我也有同样的问题。最后我不得不停止删除Kafka节点,然后按照这里的建议如何删除Kafka主题。一旦我摆脱了那些破碎的主题,我就能够成功地重新开始Kafka。
我想知道是否有更好的方法,以及如何避免这种情况发生在未来。
p1tboqfb2#
我也有同样的问题。原来,kafka要求机器的主机名是可解析的,以便连接回自身。
我在我的机器上更新了主机名,重新启动zookeeper和kafka之后,可以正确地编写主题。
kyks70gy3#
在config/server.properties中添加“advised.host.name=localhost”,然后重新启动kafka服务器。它对我有用
cl25kdpy4#
我面对这个问题
Kafka
,Zookeeper
pod在openshift中,kafka被tls启用。我不得不给Kafka添加以下环境变量,Kafka\uZookeeper\u连接
Kafka密钥库位置
Kafka\u ssl \u信任库\u位置
Kafka密码
Kafka密码
Kafka的听众
Kafka国际经纪人听众姓名
Kafka的听众
在设置了变量之后,我不得不删除并重新创建pod,让它工作。
biswetbf5#
我已经通过在
/etc/hosts
为了127.0.0.1
使用完全限定的主机名:生产者和消费者开始工作良好。
z4bn682m6#
我也遇到了同样的问题,解决了jdk从1.7到1.6的问题
kninwzqo7#
这是jdk的问题。
我已经安装了openjdk
但我将其更改为oracle jdk(请点击以下链接:http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html)
现在可以了。希望这有帮助。
tnkciper8#
当我试图在本地系统(macos x el capitan)中使用Kafka时,我遇到了完全相同的问题。问题是我的zookeeper,它没有引用正确的配置文件。重新启动zookeeper,然后kafka并执行以下命令。检查leader是否为none。如果leader为none,请删除该主题并重新创建它。
输出如下
我希望这会有帮助。
3npbholx9#
我也有同样的问题。确保消费者/生产者使用的每个分区上至少有一个主题。如果没有主题使用分区,zookeeper将找不到分区的前导
mgdq6dx110#
所以,还有一个可能的答案,即
advertised.hostname
在Kafkaconfig/server.properties
可能输入错误并有多余的空格。对我来说
而不是正确的
出于某种原因,这是工作了6个月没有问题,大概是一些库更新删除了轻松查找的ip地址修剪多余的空间。
对配置文件的简单修复和kafka的重启解决了这个问题。
ggazkfy811#
Kafka使用外部协调框架(默认情况下是zookeeper)来维护配置。似乎配置现在与Kafka日志数据不同步。在本例中,我将删除受影响的主题数据和相关的zookeeper数据。
对于测试环境:
住手
Kafka-server
以及Zookeeper-server
删除这两个服务的数据目录,默认情况下是/tmp/kafka-log
以及/tmp/zookeeper
.开始
Kafka-server
以及Zookeeper-server
再一次创建新主题
现在您可以再次使用该主题。
对于生产环境:
由于Kafka主题存储在不同的目录中,您应该删除特定的目录。您还应该删除
/brokers/{broker_id}/topics/{broken_topic}
通过使用zookeeper客户端从zookeeper。请仔细阅读Kafka文档,以确保配置结构,然后再做任何蠢事。Kafka正在推出一个删除主题的功能(kafka-330),这样问题就可以更容易地得到解决。
46scxncf12#
我已经遇到这个问题好几次了,终于明白为什么我会有这个问题。我也要在这里补充这些发现。我在linux虚拟机上,简单的回答是,自从我的虚拟机获得了一个新的ip之后,我就遇到了这个问题。如果您查看配置文件并打开server.properties,您将看到这一行
advised.host.name=xx.xx.xx.或localhost。
确保此ip与您当前的ip匹配,您可以在此处检查您的ip。
一旦我修好了,一切都开始正常工作。我使用的是0.9.0.0版本。
我希望这能帮助别人。