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

时间:2019-01-27 00:17:02

标签: apache-kafka

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

这不是重复的问题。

1 个答案:

答案 0 :(得分:1)

默认情况下,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。

希望这会有所帮助!