首页 > 解决方案 > 如何在开发环境中清除所有 kafka 数据以重新开始

问题描述

有时需要重新启动没有数据的 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

以上有2个问题:

  1. 如果硬盘使用率为 100%,那么在尝试 kafka-topics.sh 时出现错误
  2. 如果我有很多主题,它的效率非常低

在开发环境中寻找一种快速而干净的方式。

标签: apache-kafka

解决方案


好像这样就可以了

$ ###### 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

推荐阅读