设为首页 收藏本站
查看: 1899|回复: 0

[经验分享] 0022

[复制链接]

尚未签到

发表于 2019-1-31 11:02:35 | 显示全部楼层 |阅读模式
  温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
  1.问题描述
  使用kafka-topics --delete命令删除topic时并没有真正的删除,而是把topic标记为:“marked for deletion”,导致重新创建相同名称的Topic时报错“already exists”。
  2.问题复现
  1.登录Kafka集群所在的服务器,创建一个test的topic
  [root@cdh1 ~]# kafka-topics --create --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181 --replication-factor 1 --partitions 1 --topic test
DSC0000.jpeg

  2.查看新创建的topic
  [root@cdh1 ~]# kafka-topics --list --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181
DSC0001.jpeg

  3.通过如下命令删除新建的topic
  [root@cdh1 ~]# kafka-topics --delete --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181 --topic test
DSC0002.jpeg

  此处显示“Topic test is marked for deletion”
  4.尝试重新创建一个test的Topic
  [root@cdh1 ~]# kafka-topics --create --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181 --replication-factor 1 --partitions 1 --topic test
DSC0003.jpeg

  提示该Topic已存在,说明在第3步操作的删除并没有真正的将Topic删除。
  3.问题原因
  默认情况下Kafka是禁用了删除Topic的操作,所以在执行Topic删除的时候只是将删除的Topic标记为“marked for deletion”状态。可以通过修改Kafka服务的配置参数启用。
  4.解决方法
  4.1方法1
  在kafka服务配置delete.topic.enable=false的情况下,如果需要永久删除topic则需要做如下操作:

  • 通过kafka命令删除相应的topic
  • 在zookeeper中删除相应的topic
  • 在topic所在的broker节点上删除topic的log数据
  操作如下:
  1.查看topic的描述信息,命令如下
  kafka-topics --describe --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181 --topic test
DSC0004.jpeg

  上图标注部分为topic对应的数据存放节点
  2.通过kafka命令删除,命令如下:
  kafka-topics --delete --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181 --topic test
DSC0005.jpeg

  3.通过zookeeper客户端删除topic,命令如下
  zookeeper-client -server ip-172-31-1-175.ap-southeast-1.compute.internal:2181
  ls /brokers/topics
  rmr /brokers/topics/test
  注:标红部分为topic的名称
DSC0006.jpeg

  4.登录到第1步中列出的对应节点的topic的log数据目录,此处我们Kafka的log.dirs目录配置为/var/local/kakfa,执行命令
  [ec2-user@ip-172-31-9-186 data]$ sudo rm -rf test-0/
DSC0007.jpeg

  5.验证是否生效
  创建一个名称为“test”的Topic,可以正常创建
DSC0008.jpeg

  注意:此处将topic为test的日志目录(/var/local/kafka/test-0)删除后,新创建的topic为test的日志目录不存在,重启Kafka服务后正常,目录能正常显示。
  4.2方法2
  在Kafka服务已配置delete.topic.enable=true的情况下,永久删除topic需要做如下操作:

  • 使用kafka命令删除topic
  操作如下:

  • 删除前数据查看:
  kafka-topics --describe --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181 --topic test
DSC0009.jpeg

  各个数据节点的信息:
DSC00010.jpeg

DSC00011.jpeg

DSC00012.jpeg

  Zookeeper信息:
DSC00013.png

  2.通过kafka命令删除需要删除的topic,命令如下
  kafka-topics --delete --zookeeper ip-172-31-1-175.ap-southeast-1.compute.internal:2181 --topic test
DSC00014.jpeg

  3.查看Zookeeper客户端topic信息
  [zk: ip-172-31-1-175.ap-southeast-1.compute.internal:2181(CONNECTED) 9] ls /brokers/topics
DSC00015.png

  4.查看brober节点上topic的日志数据
DSC00016.jpeg

DSC00017.jpeg

DSC00018.jpeg

  5.删除后成功后,验证是否能创建名称为test的Topic
DSC00019.jpeg

  注意:
  如果Kafka服务配置了delete.topic.enable=true,直接通过命令行删除,未能删除Topic则可以通过zookeeper-client来进行删除。
  如果Kafka服务未配置delete.topic.enable=true,直接通过delete命令删除topic,删除时只会将topic标记为“marked for deletion”,然后通过zookeeper-client进行删除是不会删除topic的data.log数据目录的,需要将相应的broker服务器上的data.log目录下相应的topic目录删除,data.log目录获取,可以通过CM界面查看:
DSC00020.jpeg

  建议:Kafka服务开启delete.topic.enable=true,开启方式如下:
DSC00021.jpeg

  开启后需要重启Kafka服务。
  醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花!
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
  欢迎关注Hadoop实操,第一时间,分享更多Hadoop干货,喜欢请关注分享。
DSC00022.gif
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669972-1-1.html 上篇帖子: 爬虫架构|利用Kafka处理数据推送问题(1) 下篇帖子: kafka学习记录之配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表