kafka删除主题_kafka从头消费topic数据

kafka删除主题_kafka从头消费topic数据转自https://www.cnblogs.com/xiaodf/p/10710136.htmlKafka如何彻底删除topic及数据前言:删除kafkatopic及其数据,严格来说并不是很难的操作。但是,往往给kafka使用者带来诸多问题。项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况。本文总结多个删除kafkatopic的应用场景,总结一套删除kafkatopic的标准操作方法。step1:如果需要被删除topic此时正在被程序produce和consum

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

转自https://www.cnblogs.com/xiaodf/p/10710136.html

Kafka如何彻底删除topic及数据

前言:

删除kafka topic及其数据,严格来说并不是很难的操作。但是,往往给kafka 使用者带来诸多问题。项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况。本文总结多个删除kafka topic的应用场景,总结一套删除kafka topic的标准操作方法。

step1:

如果需要被删除topic 此时正在被程序 produce和consume,则这些生产和消费程序需要停止。
因为如果有程序正在生产或者消费该topic,则该topic的offset信息一直会在broker更新。调用kafka delete命令则无法删除该topic。
同时,需要设置 auto.create.topics.enable = false,默认设置为true。如果设置为true,则produce或者fetch 不存在的topic也会自动创建这个topic。这样会给删除topic带来很多意想不到的问题。
所以,这一步很重要,必须设置auto.create.topics.enable = false,并认真把生产和消费程序彻底全部停止。

step2:

server.properties 设置 delete.topic.enable=true
如果没有设置 delete.topic.enable=true,则调用kafka 的delete命令无法真正将topic删除,而是显示(marked for deletion)

step3:

调用命令删除topic:
./bin/kafka-topics –delete –zookeeper 【zookeeper server:port】 –topic 【topic name】

step4:

除kafka存储目录(server.properties文件log.dirs配置,默认为”/data/kafka-logs”)相关topic的数据目录。
注意:如果kafka 有多个 broker,且每个broker 配置了多个数据盘(比如 /data/kafka-logs,/data1/kafka-logs …),且topic也有多个分区和replica,则需要对所有broker的所有数据盘进行扫描,删除该topic的所有分区数据。

一般而言,经过上面4步就可以正常删除掉topic和topic的数据。但是,如果经过上面四步,还是无法正常删除topic,则需要对kafka在zookeeer的存储信息进行删除。具体操作如下:
(注意:以下步骤里面,kafka在zk里面的节点信息是采用默认值,如果你的系统修改过kafka在zk里面的节点信息,则需要根据系统的实际情况找到准确位置进行操作)

step5:

找一台部署了zk的服务器,使用命令:
bin/zkCli.sh -server 【zookeeper server:port】

注:cdh启动zk客户端方式:find / -name zkCli.sh 找到安装路径后启动即可
登录到zk shell,然后找到topic所在的目录:ls /brokers/topics,找到要删除的topic,然后执行命令:
rmr /brokers/topics/【topic name】
即可,此时topic被彻底删除。
如果topic 是被标记为 marked for deletion,则通过命令 ls /admin/delete_topics,找到要删除的topic,然后执行命令:
rmr /admin/delete_topics/【topic name】 老版本的rmr命令已经不存在了。只能delete一个一个删除空的目录,或者通过java编程删除。

备注:
网络上很多其它文章还说明,需要删除topic在zk上面的消费节点记录、配置节点记录,比如:
rmr /consumers/【consumer-group】
rmr /config/topics/【topic name】
其实正常情况是不需要进行这两个操作的,如果需要,那都是由于操作不当导致的。比如step1停止生产和消费程序没有做,step2没有正确配置。也就是说,正常情况下严格按照step1 – step5 的步骤,是一定能够正常删除topic的。

step6:

完成之后,调用命令:
./bin/kafka-topics.sh –list –zookeeper 【zookeeper server:port】
查看现在kafka的topic信息。正常情况下删除的topic就不会再显示。
但是,如果还能够查询到删除的topic,则重启zk和kafka即可。

用于第五步删除zk的目录的

 <dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.3.6</version>
</dependency>
public class Zookeeper_rmr { 
   
    public static void main(String[] args) throws Exception { 
   
        /** * 参数一 连接zk的地址 * 参数二 超时时间 * 参数三 监听器 */
        ZooKeeper zk =  new ZooKeeper("node1:2181,node2:2181,node3:2181",2000,null) ;
        // 删除节点 只能删除没有子节点的节点(叶子节点)
        // zk.delete("/a", -1);
        // 递归删除
        rmr("/brokers/topics/TEST",zk);

        // 关闭连接
        zk.close();
    }

    /** * 递归删除节点 * @param path * @param zk * @throws Exception */
    public  static  void  rmr(String  path , ZooKeeper zk) throws Exception { 
   
        // /a/b /a/c/d
        // 判断是否有子节点 递归删除
        List<String> ls = zk.getChildren(path, null);
        if(ls!=null && ls.size()>0){ 
    // 有子节点
            // 遍历所有的子节点
            for (String name : ls) { 
   
                rmr(path+"/"+name , zk) ;
            }
        }
        // 删除当前叶子节点
        zk.delete(path , -1);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181352.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【WIN】超简单的Excel密码激活成功教程「建议收藏」

    【WIN】超简单的Excel密码激活成功教程「建议收藏」新开一Excel,同时按Alt+F11,进入VBA界面,点菜单上的插入,模块,在新出来的窗口粘贴一下代码:Subcrack()DimiAsLongDimFileNameAsStringi=0FileName=Application.GetOpenFilename("Excel文件(*.xls&amp;*.xlsx),*.xls;*.xlsx",,"VBA…

    2022年6月28日
  • 256. Spinnaker介绍(企业级K8S自动化运维平台)

    256. Spinnaker介绍(企业级K8S自动化运维平台)文章目录1.Spinnaker简介2.Spinnaker逻辑架构3.Spinnaker核心功能3.1集群管理3.2部署管理4.Spinnaker管理方法5.部署Spinnaker的Armory发行版1.Spinnaker简介Spinnaker是Netflix在2015年开源的一款持续交付平台,它继承了Netflix上一代集群和部署管理工具Asgard:Web-basedCloudManagementandDeployment的优点,同时根据公司业务以及技术的的发展抛

    2022年10月30日
  • 如何解决虚拟机连不上网「建议收藏」

    如何解决虚拟机连不上网「建议收藏」通常情况下,电脑关机或重启后需要重新连网,但是,虚拟机下的乌班图通常需要重新连网,很多时候找不到之前连接的网络,如果是宽带连接,首先查看虚拟机的设置,将网络适配器改成Net模式(必要时需要重置,然后重启虚拟机),如果还没有出现要连接的以太网,那么就要查看一下主机的服务中的虚拟机是否已经全部开启,如果没有开启,就要将所有和虚拟机有关的服务启动。…

    2022年6月26日
  • 2021年程序员平均工资_中国程序员数量

    2021年程序员平均工资_中国程序员数量前言两会期间,包括腾讯董事会主席兼首席执行官马化腾,百度董事长兼CEO李彦宏,小米创始人兼CEO雷军等一众互联网科技大佬提出了一系列的提案,围绕数字经济,自动驾驶,网络安全,智能制造等细分领域,仿佛手握未来一年的数字化密码,为我们开启新世界的大门。他们是新世界的指向灯,在他们背后则是无数的新世界探索者,通过指尖代码为未来铺路的程序员们,一直以来,作为备受人们关注的群体,互联网的飞速发展时期离不开他们。为了更好地顺应时代发展形式,运用技术改善生活,程序员客栈对中国程序员薪资和生活现状做了一些

    2022年10月10日
  • 深度学习 CNN卷积神经网络 LeNet-5详解

    深度学习 CNN卷积神经网络 LeNet-5详解卷积神经网络(ConvolutionalNeuralNetwork,CNN):是一种常见的深度学习架构,受生物自然视觉认知机制(动物视觉皮层细胞负责检测光学信号)启发而来,是一种特殊的多层前馈神经网络。它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。一般神经网络VS卷积神经网络:相同点:卷积神经网络也使用

    2022年5月22日
  • 安全帽识别的系统应用

    安全帽识别的系统应用安全帽识别的原理是用AI技术对工作现场的视频进行实时分析,如果发现工作人员未按要求佩戴安全帽,系统会自动发出警报,在提醒管理人员的同时,系统会自动保存时间、地点及相应的照…

    2022年5月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号