繁体   English   中英

如何从 kafka 中强制删除主题

[英]how to force delete topic from kafka

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

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

注意 - 我们设置 - 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.

如何强制删除主题?

在kafka机器(生产机器)上,我们看到:(没有可用空间)

 /dev/sdb    15500450528 15500434144         0 100% /var/kafka

在 /var/kafka/kafka-logs 下,我们仍然看到所有主题文件夹(巨大的大小)作为示例:(向下)

那么是否可以仅删除这些文件夹作为示例 - 通过

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

. .

删除您一直在尝试的方式应该可以工作,但我猜 Kafka 在完整磁盘的情况下不能正常工作。

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

  • 关闭卡夫卡
  • 在所有具有hgpo.llo.prmt.processed副本的 Kafka 代理上,转到其数据目录并删除以hgpo.llo.prmt.processed-开头的文件夹。
  • 使用zookeeper-shell工具连接 Zookeeper
  • 运行: rmr /brokers/topics/hgpo.llo.prmt.processed
  • 重启卡夫卡

为了防止这种情况再次发生,我建议您查看 Kafka 提供的用于控制磁盘使用的保留策略

可以通过直接登录 ZooKeeper shell 并从集群中删除主题元数据来删除标记为删除的 Kafka 主题。 我们还建议从与主题关联的每个代理中删除日志段。

  1. zookeeper-shell
  2. rmr /配置/主题/
  3. rmr /经纪人/主题/
  4. rmr /admin/delete_topics/
  5. 对于每个经纪人:
    • 关闭经纪人
    • rm -R ${log.dirs}/-*
    • 启动代理

注意:应谨慎执行步骤 5,以确保您只删除要删除的主题的日志目录

暂无
暂无

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

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