在Apache Kafka Quickstart Guide之后,我完成了以下步骤:
kafka_2.11-2.1.0.tgz
cd kafka_2.11-2.1.0
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
。之后运行echo $?
表示此命令以状态0
退出现在是关键时刻。指南说:
如果我们运行list topic命令,我们现在可以看到该主题:
bin/kafka-topics.sh --list --zookeeper localhost:2181
> test
但是,我没有从该命令获得任何输出,并且正在测试的一个软件试图在"test"
主题上发送消息,该软件崩溃了,因为它找到了该主题的0个分区。
我还有一个Ruby程序,该程序将主题"test"
发送到Kafka。它失败并重试,并且我在Kafka日志中看到了此时创建的主题,并且可以向其发送消息。但是即使那样,列出主题的命令也不会返回任何内容。
为什么不能显式创建主题?为什么我不能列出按需创建的主题?我该如何解决这个问题?
这是我在日志中看到的:https://gist.github.com/nathanl/bea7a45a056b2d44146947ec88c29185
答案 0 :(得分:3)
我遇到了同样的问题。但是,我发现在untar命令之后,脚本bin / kafka-topics.sh的内容是空的。
因此,我再次下载了kafka,untar并检查了脚本文件的内容,直到在那里看到它为止,然后它就可以工作了。
答案 1 :(得分:1)
我遇到了同样的问题。
首先检查bin/kafka-topics.sh
中是否包含任何内容。
然后继续清除zookeeper和kafka的所有tmp数据
rm -r /tmp/zookeeper
rm -r /tmp/kafka-log
然后重新启动您的Zookeeper和kafka。
答案 2 :(得分:0)
在Mac 10.13.6上,我遵循相同的步骤,以下是一些故障排除步骤供您检查。
启动Zookeeper时,您应该在标准输出中看到:
INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
启动Kafka时,您应该会在标准输出中看到:
INFO Awaiting socket connections on 0.0.0.0:9092. (kafka.network.Acceptor)
[…]
INFO [SocketServer brokerId=0] Started processors for 1 acceptors (kafka.network.SocketServer)
INFO Kafka version : 2.1.0 (org.apache.kafka.common.utils.AppInfoParser)
INFO Kafka commitId : 809be928f1ae004e (org.apache.kafka.common.utils.AppInfoParser)
INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
kafka-topics
命令应返回输出(您什么也没说,这可能是在此阶段无法正常工作的信号):
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
$
执行此操作时,在Kafka标准输出中,您会在日志信息中看到Created log for partition test-0
:
INFO [Log partition=test-0, dir=/tmp/kafka-logs] Loading producer state till offset 0 with message format version 2 (kafka.log.Log)
INFO [Log partition=test-0, dir=/tmp/kafka-logs] Completed load of log with 1 segments, log start offset 0 and log end offset 0 in 52 ms (kafka.log.Log)
INFO Created log for partition test-0 in /tmp/kafka-logs with properties {compression.type -> producer, message.format.version -> 2.1-IV2, file.delete.delay.ms -> 60000, max.message.bytes -> 1000012, min.compaction.lag.ms -> 0, message.timestamp.type -> CreateTime, message.downconversion.enable -> true, min.insync.replicas -> 1, segment.jitter.ms -> 0, preallocate -> false, min.cleanable.dirty.ratio -> 0.5, index.interval.bytes -> 4096, unclean.leader.election.enable -> false, retention.bytes -> -1, delete.retention.ms -> 86400000, cleanup.policy -> [delete], flush.ms -> 9223372036854775807, segment.ms -> 604800000, segment.bytes -> 1073741824, retention.ms -> 604800000, message.timestamp.difference.max.ms -> 9223372036854775807, segment.index.bytes -> 10485760, flush.messages -> 9223372036854775807}. (kafka.log.LogManager)
INFO [Partition test-0 broker=0] No checkpointed highwatermark is found for partition test-0 (kafka.cluster.Partition)
INFO Replica loaded for partition test-0 with initial high watermark 0 (kafka.cluster.Replica)
INFO [Partition test-0 broker=0] test-0 starts at Leader Epoch 0 from offset 0. Previous Leader Epoch was: -1 (kafka.cluster.Partition)
主题然后显示在列表中:
$ ./bin/kafka-topics.sh --zookeeper localhost:2181 --list
test
答案 3 :(得分:0)
在VPN上运行时,我在Mac上也遇到了同样的问题,这导致我的主机名解析失败。
我通过编辑server.properties
并添加以下行来解决此问题:
listeners=PLAINTEXT://localhost:9092