kafka topic手动删除及其他相关

原创 2015年11月20日 16:56:29
1.手动删除kafka topic


运行./kafka-topic --zookeeper zk1:2181,zk2:2181 --topic topic_name --delete
如果topic没能成功被删除(比如broker挂掉等)
可以用以下方式手动清理
(当然,也可以重启zk和broker;这样当broker正确注册上zk试,被mark delete的topic会被自动清理掉)


===============停止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


===========停止kafka和zookeeper========================


a.查看server.properties中配置的log.dirs路径
b.进入到此路径中(如果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
同理修改


===========启动kafka和zookeeper========================


2.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
文件大小检查的周期时间


3.kafka的分布式


一个日志的多个partition被分散在kafka集群的多个server上,并且每一个server处理来自于某个partition的数据请求。每个partition可以配置副本个数,以便容错。
(注:在创建topic时,可以指定--replication-factor参数)


每个partition都有个一个server作为leader,并且有0或者多个server作为followers。leader处理对于这个partition的所有读写请求,而followers则被动的复制一切。如果leader挂掉了,一个followers则会自动的成为新的leader。每个server都会在某些partition上作为leader,而在另一些partition上作为follower,所以整个集群是非常平衡的。
(注:如果topic的repliation配置为1,则每个partition就只有唯一的一个leader,没有follower;所以要保证容错性,至少replication应该配置为2)




4.kafka producer最好使用轮询的方式向topic写数据,保证topic每个partition的负载是均衡的
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

漫游Kafka之过期数据清理

Kafka将数据持久化到了硬盘上,允许你配置一定的策略对数据清理,清理的策略有两个,删除和压缩。...

kafka 数据删除策略

数据的存储位置 数据存储的文件类型 数据删除策略

Kafka某topic无法消费解决方案&Kafka某Topic数据清理

由于项目原因,最近经常碰到Kafka消息队列某topic在集群宕机重启后无法消费的情况。碰到这种情况,有三步去判断原因所在: step A:如果用kafka串口(即console-consume...

彻底删除Kafka中的topic

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

kafka部署及实例命令 彻底删除topic

1、安装zookeeper 2、安装kafka Step 1: 下载Kafka 点击下载最新的版本并解压. > tar -xzf kafka_2.10-0.8.2.1.tgz > cd k...
  • weipanp
  • weipanp
  • 2015年06月02日 15:32
  • 7841

kafka0.8.1.1彻底删除topic并清空log内容

kafka0.8.1.1以及之前版本都无法使用类似一条命令就彻底删除topic,以前看过网上一些删除命令不过只是在zookeeper注销信息而已,但是实际的日志内容还是保存在kafka log中,因为...

Kafka 删除kafka中的topic 多种方式

最近由于项目需要需要删除 kafka 中的topic : 下面记录下删除的方式: 方式一 (我的机器不成功不知道是什么原因) 原理:通过kafka 的配置: ...

kafka清理数据

kafka清理数据

彻底删除kafka的topic方法

1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录 2、Kafka 删除topic的命令是: ka...
  • xbs1019
  • xbs1019
  • 2017年02月07日 22:22
  • 2990

彻底删除Kafka中的topic

你若想真正删除它,可以如下操作: (1)登录zookeeper客户端:命令:./bin/zookeeper-client(2)找到topic所在的目录:ls /brokers/topics(3)找到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:kafka topic手动删除及其他相关
举报原因:
原因补充:

(最多只允许输入30个字)