当前位置: 首页 > 知识库问答 >
问题:

如何从kafka中强制删除主题

吕翰飞
2023-03-14

我们执行以下步骤以删除主题-hgpo.llo.prmt.processed

但即使在12小时后,主题文件夹仍未从/var/kafka/kafka-logs中删除

注意-我们set-delete.topic.enable=true

  hkafka01 kafka-logs]# /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper master01:2181 --alter --topic hgpo.llo.prmt.processed--config retention.ms=1000

  WARNING: Altering topic configuration from this script has been deprecated and may be removed in future releases. Going forward, please use kafka-configs.sh for this functionality Updated config for topic "hgpo.llo.prmt.processedd"

  kafka01 kafka-logs]# /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper master01:2181 --delete --topic hgpo.llo.prmt.processed 

  Topic hgpo.llo.prmt.processed is already marked for deletion.
 /dev/sdb    15500450528 15500434144         0 100% /var/kafka
rm -rf hgpo.llo.prmt.processed-28 ?

在/var/kafka/kafka-logs下,我们有许多主题文件夹,如:

 117G hgpo.llo.prmt.processed-28 
 117G hgpo.llo.prmt.processed-29
 117G hgpo.llo.prmt.processed-3
 117G hgpo.llo.prmt.processed-30
 117G hgpo.llo.prmt.processed-31
 117G hgpo.llo.prmt.processed-32

..

共有1个答案

汪翰墨
2023-03-14

删除的方式,你一直在尝试应该可以工作,但我猜Kafaka不是很好地工作,与一个满的磁盘。

由于您的磁盘已满,我假设Kafka无法使用,短时间停机是可以接受的。手动删除主题:

  • 关闭Kafaka
  • 在具有hgpo.llo.prmt.processed副本的所有Kafka代理上,转到它们的数据目录并删除以hgpo.llo.prmt.processed-开头的文件夹。
  • 使用zookeeper-shell工具
  • 连接到Zookeeper
  • 运行:rmr/brokers/topics/hgpo.llo.prmt.processed
  • 重新启动Kafaka
 类似资料:
  • 距今已过去数小时,话题仍未删除。 我看到了一些建议,建议我将放在我的中,然后重新启动Kafka。我试过这个。没奏效。 (为什么默认不设置这个?) 我可以关闭kafka和zookeeper,运行,然后再次启动zookeeper和kafka。但这是相当激烈的。确实应该有一些方法来说服实际上删除一个主题?

  • 我想删除所有空的Kafka主题(定期从cron)。我在文档中找不到一个这样做的命令?转到脚本: 但是,这包括已经过期的消息?在不使用消费者的情况下,如何在主题中找到实际的当前计数?

  • 问题内容: 我需要在kafka-0.8.2.2.3中删除一个主题。我已使用以下命令删除该主题: 该命令已成功执行,但是当我运行命令以列出主题时,我可以看到该主题仍然存在,并且显示 标记为“删除” 。 当我创建主题DummyTopic时,它会输出异常,该主题已存在,下面是堆栈跟踪: 请让我知道如何删除该主题。 问题答案: 从0.8.2.x版本开始支持删除主题。您必须首先在所有代理上启用主题删除(设置

  • 我创建了一个制作人和一个消费者,使用“Kafka节点”包发送和消费Kafka主题的消息。生产者和消费者通过API进行调用。POST方法用于向主题发送消息,而GET方法用于在消费者处从主题获取消息。 当我向KAFKA发送消息后调用consumer API时,之前的所有消息都会在。 我只需要最后一条消息,这是生产者发送的。 如何在不使用任何数组或任何东西的情况下获取最后一条消息。 有没有办法删除这个话

  • 我正在寻找一种从Kafka主题中删除(完全删除)已消费记录的方法。我知道有几种方法可以做到这一点,例如更改主题的保留时间或删除Kafka logs文件夹。但我要寻找的是一种使用Java API删除某个主题的一定数量记录的方法,如果可能的话。 我试过测试AdminClient API,特别是AdminClient。deleteRecords(recordsToDelete)方法。但如果我没弄错的话,

  • 主题的最后状态: 组,主题,分区,当前偏移量,日志结束偏移量,滞后,所有者G.AB_KAFF,T.AB_KAFF,0,5,5,0,Consumer-2_/127.0.0.1 G.AB_KAFF,T.AB_KAFF,1,5,5,0,Consumer-2_/127.0.0.1 现在我删除主题。并将邮件发布到此主题 那么为什么Kafka要把滞后设定为-ve数。这难道不是一个潜在的问题吗? 假设我再次订阅