一、删除Kafka topic

运行./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】;如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion

可以通过命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 来查看所有topic

此时若想真正删除它,可以登录zookeeper客户端,命令:./bin/zookeeper-client

  找到topic所在的目录:ls /brokers/topics

找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。

  另外被标记为marked for deletion的topic可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,如果你删除了此处的topic,那么marked for deletion 标记消失;

二、Zookeeper数据清理

下面分四种场景,具体如下:

1、停止kafka,保持zookeeper仍旧运行

A.用zookeeper客户端zkClient连接zookeeper,如:

./zkCli.sh -server 10.67.2.21:2181,10.67.2.20:2181

连接成功后,可以用命令查看zk的目录结构:

ls /brokers/topics

然后可以看到该目录下有pjtest目录,删除方式:

delete /brokers/topics/pjtest/partitions/0/state
...
delete /brokers/topics/pjtest/partitions/9/state
delete /brokers/topics/pjtest/partitions/0
...
delete /brokers/topics/pjtest/partitions/9
delete /brokers/topics/pjtest/partitions
delete /brokers/topics/pjtest

2、停止kafka和zookeeper

  • 查看server.properties中配置的log.dirs路径;
  • 进入此路径中(如果kafka是一个集群,需要在每台机器上执行) 假定要删除的topic名称为:pjtest,则rm -rf pjtest-*;
  • vi replication-offset-checkpoint
    假设原文为:
    0
    15
    pjtest 4 0
    pjtest 8 0
    managejob 5 0
    pjtest 6 0
    pjtest 0 0
    pjtest 5 0
    pjtest 3 0
    pjtest 7 0
    pjtest 9 0
    pjtest 2 0
    managejob 9 0
    managejob 1 0
    managejob 3 0
    pjtest 1 0
    managejob 7 0

    修改为:
    0
    5
    managejob 5 0
    managejob 9 0
    managejob 1 0
    managejob 3 0
    managejob 7 0

  • 同理需要修改vi recovery-point-offset-checkpoint

3、启动kafka和zookeeper

一、kafka日志清理

Kafka将会保留所有发布的消息,不论他们是否被消费过.如果需要清理,则需要进行配置.server.properties配置:
    log.cleanup.policy=delete
    日志清理策略

log.retention.hours=240
    数据存储的最大时间超过这个时间会根据log.cleanup.policy设置的策略处理数据,也就是消费端能够多久去消费数据

log.retention.bytes和log.retention.minutes任意一个达到要求,都会执行删除

log.retention.bytes=-1

topic每个分区的最大文件大小,一个topic的大小限制=分区数*log.retention.bytes.-1表示没有大小限制
    log.retention.bytes和log.retention.minutes任意一个达到要求,都会执行删除
    log.retention.check.interval.ms=5minutes 文件大小检查的周期时间

手动删除Kafka Topic的更多相关文章

  1. 删除kafka topic

    1.因为项目原因,kakfa通道中经常造成数据阻塞,导致kafka通道中数据量过大,因此我需要将kakfa通道中数据清除(个人项目原因,一直使用一个消费者,只要保证当前消费者不在消费之前很久的数据就可 ...

  2. 彻底删除kafka topic步骤

    基于kafka-2.11-0.9.0.0 . a.kill掉kafka进程,然后在server.properties里面加上delete.topic.enable=true.重启kafka.集群中的每 ...

  3. zookeeper删除kafka元数据

    问题:卸载kafka前未删除kafka topic,重新安装kafka后,生成跟之前topic名字相同的topic时报错,显示topic已存在 [root@d96 ~]# kafka-topics - ...

  4. kafka删除一个topic

    前言 当我们在shell中执行topic删除命令的时候` kafka-topics --delete --topic xxxx --zookeeper xxx`,会显示,xxxx已经被标记为删除.然后 ...

  5. kafka topic 完全删除

    kafka topic 完全删除   1.自动删除脚本(得配置server.properties 中 delete.topic.enable=true) ./kafka-topics.sh --zoo ...

  6. 删除Kafka的topic

    刚接触Kafka,开始认为删除一个topic只是运行一下Kafka-topic.sh的delete命令就行了,但是,事实却不是这样,会出现两种情况:(1) 如果topic没有使用过即没有传输过消息,可 ...

  7. 【帖子】怎么彻底删除kafka的topic,然后重建?

    怎么彻底删除kafka的topic,然后重建? 网上都说用kafka-run-class.shkafka.admin.DeleteTopicCommand 命令删除topic,但是并没有成功,用kaf ...

  8. 彻底删除Kafka中的topic

    1.删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录 2.Kafka 删除topic ...

  9. 删除kafka的topic及kafka基本命令

    kafka的topic默认是不允许被删除的,删除后在topic后会出现”marked for deletion”字样,实际并未删除,现在创建同样的topic会提示topic已经存在. 解决办法: se ...

随机推荐

  1. Informatica 常用组件Aggregator之一 聚合表达式

    转换类型:已连接.主动        聚合转换允许您执行聚合计算,比如平均值和总和.聚合转换与表达式转换不同,您可以使用聚合转换对多组执行计算.而表达式转换只允许您逐行地执行计算.        使用 ...

  2. Ubuntu 12.04 安装配置 Apache2

    Apache2安装 1 我们使用root账户进行安装,首先切换到root账户,输入命令: sudo su 2 安装 Apache2 apt-get install apache2 在浏览器输入你服务器 ...

  3. Android高效加载大图、多图解决方案,有效避免程序内存溢出现象

    好久没有写博客了,今天就先写一个小的关于在Android中加载大图如何避免内存溢出的问题. 后面会写如何使用缓存技术的核心类,android.support.v4.util.LruCache来加载图片 ...

  4. homogeneous clip space and NDC

    CVV  canonical view volume HCS homogeneous clip space NDC nomolized device coordinates pipeline 的 ge ...

  5. [转贴] 数字证书及 CA 的扫盲介绍

    [略有删节] 为了达到普及的效果,俺会尽量用比较浅显,非技术的语言来讲清楚. ★先说一个通俗的例子 考虑到证书体系的相关知识比较枯燥.晦涩.俺先拿一个通俗的例子来说事儿.   ◇普通的介绍信 想必大伙 ...

  6. C#.NET常见问题(FAQ)-get set属性有什么意义

    使用get,set可以让类定义的更加规范,因为正常情况下,如果我们写一个自定义类,他的属性要么是public,要么是private,但是如果public的属性又要做限制,比如人年龄不允许负数,也不允许 ...

  7. Ajax中文传参出现乱码

    Ajax技术的核心为Javascript,而javascript使用的是UTF-8编码,因此在页面采用GBK或者其他编码,同时没有进行编码转换时,就会出现中文乱码的问题. 以下是分别使用GET和POS ...

  8. mac 终端 使用 solarized 主题设置语法高亮

    mac 终端 使用 solarized 主题设置语法高亮 先来看看 solarized 在 mac 终端上的效果图片 一:先下载 solarized 官网下载:https://github.com/a ...

  9. Hibernate框架简介(二)基本使用增、删、改、查

    一.Hibernate框架简介 Hibernate是一个优秀的Java持久化层解决方案,是当今主流的对象-关系映射(ORM,ObjectRelationalMapping)工具 1.1.理解持久化 瞬 ...

  10. JavaSE入门学习17:Java面向对象之package(包)

           一Java包(package)        为了更好地组织类,Java提供了包机制,用于差别类名的命名空间.        包的作用:        A把功能类似或相关的类或接口组织在 ...