【问题标题】:Can't Start Kafka Server on Windows 10 - Kafka's log directories (and children) should only contain Kafka topic data无法在 Windows 10 上启动 Kafka 服务器 - Kafka 的日志目录(和子目录)应该只包含 Kafka 主题数据
【发布时间】:2020-02-29 09:50:42
【问题描述】:

按照lesson 28 of Learn Apache Kafka for Beginners Udemy course 中的说明启动zookeeper,然后在Windows 10 上启动kafka 服务器代理。Zookeeper 在端口2181 上运行良好:

C:\kafka_2.12-2.3.1> zookeeper-server-start.bat config/zookeeper.properties

...

INFO 绑定到端口 0.0.0.0/0.0.0.0:2181

但是将bat文件添加到path之后,运行kafka server就不行了:

C:\kafka_2.12-2.3.1> kafka-server-start.bat config/server.properties

...

ERROR 日志加载期间其中一个线程出错:org.apache.kafka.common.KafkaException: Found directory C:\kafka_2.12-2.3.1\data\kafka, 'kafka' is not in topic-partition 或 topic-partition.uniqueId-delete 的形式(如果标记为删除)。 Kafka 的日志目录(和子目录)应该只包含 Kafka 主题数据。 (kafka.log.LogManager)

zookeeper 中的一些标准输出日志看起来信息丰富:

接受来自 /127.0.0.1:49439 (org.apache.zookeeper.server.NIOServerCnxnFactory) 的套接字连接 [2019-11-03 17:22:42,278] INFO 客户端尝试在 /127.0.0.1:49439 (org.apache.zookeeper.server.ZooKeeperServer) 建立新会话 [2019-11-03 17:22:42,286] INFO 创建新的日志文件:log.1 (org.apache.zookeeper.server.persistence.FileTxnLog)

...

INFO sessionid 的已处理会话终止:0x1007b0044a40000 (org.apache.zookeeper.server.PrepRequestProcessor) [2019-11-03 17:22:42,987] 信息已关闭客户端 /127.0.0.1:49439 的套接字连接,其 sessionid 为 0x1007b0044a40000 (org.apache.zookeeper.server.NIOServerCnxn)

在我创建的data文件夹下,有我创建的两个文件夹,第二个是我尝试运行kafka broker后填充的:

kafka/ |-- 空 zookeeper/ |-- version-2/ |--log.1

为什么会发生此错误,如何在 Windows 10 上启动 Kafka 服务器?

编辑:

config/server.properties的内容:

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=C:/kafka_2.12-2.3.1/data/

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=localhost:2181

zookeeper.connection.timeout.ms=6000

group.initial.rebalance.delay.ms=0

【问题讨论】:

  • 能否把config/server.properties的内容发一下(可以排除cmets)?
  • 对不起,能否请您也显示C:\kafka_2.12-2.3.1\data\kafka下的目录名和文件名?
  • @iamabug 我用文件内容和 server.properties 编辑了问题。
  • 我认为@cricket_007 是对的。错误消息显示Kafka's log directories (and children) should only contain Kafka topic data。删除 zookeeper 目录应该是解决方案。

标签: apache-kafka windows-10


【解决方案1】:

data/ 文件夹包含空的 zookeeper/ 和 kafka/ 目录

您是否创建了这些文件夹? Kafka 的log.dirs 只能包含topic-partition or topic-partition.uniqueId-delete (if marked for deletion) 格式的文件夹,如报错所述。如果开始全新安装,该文件夹应该是空的(没有子目录)。

另外,Kafka 数据目录不应该保存 Zookeeper 数据,因为 Zookeeper 应该独立于 Kafka

【讨论】:

  • 我创建了那个文件夹,是的,并在属性文件中使用了log.dirs 中的路径。只需按照 Udemy 课程中描述的步骤进行操作即可。我认为它们是用来存放日志的。 Zookeeper 日志是否应该保存在这个kafka_2.12-2.3.1 目录之外?
  • 我无法登录 Udemy 来查看它的建议,但 Kafka 会自动创建文件夹,因此您不需要这样做。是的,Zookeeper 数据应该与 Kafka 分开。在生产环境中,它们甚至位于不同的机器上。
猜你喜欢
  • 2018-09-26
  • 1970-01-01
  • 2017-01-16
  • 2018-03-01
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2021-06-28
  • 2016-06-04
相关资源
最近更新 更多