有时有必要重新启动没有数据的kafka集群。在docker容器中运行kafka时,此行为是免费实现的。 如何用kafka过程来做?我可以删除/ var / log / kafka *并重新启动它吗?可以吗?
顺便说一句-我正在使用类似这样的东西:
# bash shell
# tl is a list of all topics
for t in $(cat tl); do
./kafka-topics.sh --zookeeper $ZOO --delete --topic $t
done
上述存在两个问题:
寻找在开发环境中进行操作的快速,干净的方法。
答案 0 :(得分:1)
看起来像这样工作
$ ###### stop and clear all brokers
$ sudo systemctl stop kafka.service zookeeper.service
$ sudo rm -rf /var/log/kafka-logs/*
$ ###### continue ONLY after finish the above on all brokers
$ sudo systemctl start zookeeper.service
$ sleep 10s # make sure zookeeper is ready
$ sudo systemctl start kafka.service
答案 1 :(得分:-1)
我建议您暂时将log.retention.ms
设置为较低的值,比如说1000。这样一来,您告诉kafka将消息保留一秒钟,然后再将其永久删除。稍等片刻,kafka会删除所有消息(活动段上的所有消息,但不是所有消息),完成后,您可以还原log.retention.ms
的设置。