apache-kafka - 如何在开发环境中清除所有 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个问题:
- 如果硬盘使用率为 100%,那么在尝试 kafka-topics.sh 时出现错误
- 如果我有很多主题,它的效率非常低
在开发环境中寻找一种快速而干净的方式。
解决方案
好像这样就可以了
$ ###### 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
推荐阅读
- javascript - 关于chrome devltools javascript profiler火焰图的问题,聚合时间小于总时间
- c# - 如何在无状态 Web 应用程序往返中使用符合 FIPS 的加密
- jekyll - 默认 jekyll 元数据设置?
- node.js - 无法识别术语“nodemon”
- php - 找到保存产品变化图像的函数-WooCommerce
- django - 无法理解反应中的 axios 错误处理
- python - 如何用 Python Turtle 绘制折线图?
- python - 组合/合并具有重复名称的两个数据集
- .htaccess - 通过用连字符替换所有空格一次来减少重定向链
- java - 你怎么知道一个 char 类型的变量是打印一个字母还是一个数字?