我正在Windows操作系统上尝试简单的kafka配置。我的zookeeper和kafka安装使用默认配置(数据和日志目录路径除外)。我可以启动kafka并产生/使用消息而不会出现问题;但是,当代理尝试删除旧消息(我将日志保留时间设置为100 ms)时,出现以下错误:
randomVersion | should -Match -RegularExpression '^(14|15|16)\.[0-9]+\.[0-9]+\.[0-9]+$'
这似乎是这个问题:https://issues.apache.org/jira/browse/KAFKA-6188
kafka版本:kafka_2.11-1.1.0 Windows 10 Zookeeper版本:3.4.12
我有几个问题:
谢谢
答案 0 :(得分:2)
第1步:在server.properties文件中指向新的日志目录并保存该文件
log.dirs = C:\ Tools \ kafka_2.11-2.1.0 \ kafka-test-logs
第2步:再次启动kafka服务器
/bin/windows/kafka-server-start.bat /config/server.properties
答案 1 :(得分:2)
转到 kafka 文件夹中的 config 文件夹(例如 D:\kafka\config)
打开zookeeper.properties
编辑你的 datadir 看起来像:
dataDir = D:/kafka/data/zookeeper
在记事本中打开 server.properties 并编辑 logs.dirs 和 zookeeper.connect
logs.dirs = D:/kafka/data/kafka
zookeeper.connect=localhost:2181
注意:根据您自己的 kafka 设置和文件夹替换 D:\kafka
答案 2 :(得分:0)
当我使用默认配置在本地运行zookeeper,kafka服务器,命令行生产者和使用者时,遇到类似的问题,如下所述:https://kafka.apache.org/quickstart 服务器和生产者成功启动,但是当我尝试启动使用者时,我立即遇到了日志失败的问题。
我通过为服务器,生产者和使用者设置不同的日志目录来修复它。至于没有为生产者和消费者设置它的明确方法,我不得不更新他们的启动脚本。我加了一行
set LOG_DIR=/distr/kafka_2.11-2.2.0/producer_logs
到 kafka_console_producer.bat
以及 kafka_console_consumer.bat 的 /distr/kafka_2.11-2.2.0/consumer_logs 。
修复使用者成功启动之后。
看来问题在于,这三个进程都使用相同的日志目录,并且以某种方式相互干扰。
答案 3 :(得分:0)
我具有相同的kafka行为,但仅重命名或清除日志目录并不能解决问题。每次我尝试启动kakfa时,它都会崩溃(它会生成所有已删除的日志)。
解决方案:
答案 4 :(得分:0)
我在Windows上使用Kafka 2.12-2.3.0。对我有用的是更改 server.properties 设置 log.dirs = 以同时包含日志数据Kafka和Zookeeper。
示例:
log.dirs = C:/kafka_2.12-2.3.0/data/kafka,C:/kafka_2.12-2.3.0/data/zookeeper
答案 5 :(得分:0)
我尝试了多种方法来解决此问题:
从server.properties中log.dirs属性指向的文件夹中删除日志。 它确实在一定时间内解决了我的问题,但是当我创建了20多个主题时,它就停止了工作,因此每次启动kafka服务器时,都会出现此问题。
尝试使用命令“ kafka-topics --zookeeper localhost:2181 --delete --topic topicname”从kafka删除主题,但将我的主题标记为-“标记为要删除的标志”。但没有解决我的问题。
然后,最后我尝试删除kafka的tmp文件夹内的zookeeper和kafka-logs文件夹,它起作用了,所有主题都被删除了。
答案 6 :(得分:0)
删除Kafka代理的日志文件以及zookeeper的数据和日志文件,然后重新启动。 另外请记住在重新启动Kafka和Zookeeper之前先停止Kafka客户端
答案 7 :(得分:0)
您可以删除所有Kafka数据。参见Kafka docs:
- 如果尚未停止,请
Ctrl-C
停止生产者和消费者客户。- 使用
Ctrl-C
停止Kafka经纪人。- 最后,使用
Ctrl-C
停止ZooKeeper服务器。如果您还想删除本地Kafka环境的任何数据 包括您在创建过程中创建的所有事件,请运行以下命令:
$ rm -rf /tmp/kafka-logs /tmp/zookeeper
答案 8 :(得分:0)
尝试在 Kafka 文件夹中创建一个新文件夹。 更改 server.properties 和 zookeeper.properties 并重新启动命令提示符并再次尝试启动服务器。
答案 9 :(得分:0)
在开发机器上,我停止了 zookeeper 和 kafka-server 以及所有客户端,并删除了日志目录的内容。 然后依次启动zookeeper、kafka、connectors、clients。
答案 10 :(得分:0)