繁体   English   中英

如何清除或删除Kafka 2.1.0版本中的主题

[英]How to purge or delete a topic in kafka 2.1.0 version

想要分享清除或删除2.1.0版本中的kafka主题的不同方法。 我在“ 清除Kafka主题”中发现了类似的问题,但是,已弃用了可接受的答案,因此它适用于Kafka 0.8版及更低版本,因此创建了带有答案的问题。

这不是重复的问题。

默认情况下,Kafka将邮件保留168小时,即7天。 如果您想强迫kafka清除该主题,则可以通过多种方式进行。 让我们详细看看。

1.使用kafka-configs.sh命令

临时将保留策略更改为1秒。

kafka-configs.sh --zookeeper localhost:2181 --alter --entity-type topics --add-config retention.ms=1000 --entity-name text_topic

您可以通过运行以下命令来检查保留策略的当前值。

kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --describe --entity-name text_topic
Configs for topic 'text_topic' are retention.ms=1000

等待1秒钟,然后删除将其恢复为默认值的保留策略配置。

kafka-configs.sh --zookeeper localhost:2181 --alter --entity-type topics --delete-config retention.ms --entity-name text_topic

2.删除主题并重新创建

在删除现有主题之前,请先获取当前主题的分区和副本,因为您需要这些分区和副本才能重新创建主题。 您可以通过运行主题的describe获得此信息

kafka-topics.sh --zookeeper localhost:2181 --describe --topic text_topic

Topic:text_topic        PartitionCount:3        ReplicationFactor:3     Configs:
        Topic: text_topic       Partition: 0    Leader: 0       Replicas: 0     Isr: 0

删除主题。

kafka-topics.sh --zookeeper localhost:2181 --delete --topic text_topic

重新创建带有复制和分区详细信息的主题。

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic text_topic

3.从kafka日志中手动删除数据。

  1. 停止所有节点上的zookeeper和kafka。
  2. 从所有节点清除kafka日志。 kafka将其日志文件存储在/ tmp / kafka-logs / MyTopic-0,其中/ tmp / kafka-logs由log.dirattribute指定
  3. 重新启动zookeeper和kafka。

希望这可以帮助 !!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM