Kafka topic常用命令 查看 创建 修改 彻底删除topic(删除数据目录和在zk上的信息)

1.创建topic

命令格式:注意空格

./kafka-topics.sh --create --topic topic名称 --partitions 分区数 --replication-factor 备份数 --zookeeper ZooKeeper的任意一个节点或者全部的IP:Port/kafka

示例:

./kafka-topics.sh --zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka 
--create --topic testTopic --partitions 10 --replication-factor 2

配合--if-not-exists使用,如果不存在则创建:

./kafka-topics.sh --zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka 
--create --topic testTopic --partitions 31 --replication-factor 2 --if-not-exists

2.列出所有topic

命令格式:

./kafka-topics.sh --list --zookeeper ZooKeeper的任意一个节点或者全部的IP:Port/kafka

示例:topic中会存在Kafka默认的topic

./kafka-topics.sh --zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka --list

3.查看topic信息

命令格式:

./kafka-topics.sh --describe --zookeeper ZooKeeper的任意一个节点或者全部的IP:Port/kafka --topic topic名称

示例:

./kafka-topics.sh --describe 
--zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka 
--topic testTopic

4.修改topic配置信息

命令格式:

./kafka-topics.sh --alter --topic topic名称 --config 配置项=配置值 --zookeeper ZooKeeper的任意一个节点或者全部的IP:Port/kafka

5.增加分区partitions

命令格式:

./kafka-topics.sh --alter --topic topic名称 --zookeeper ZooKeeper的任意一个节点者全部的IP:Port/kafka --command-config Kafka/kafka/config/client.properties --partitions 扩展后的分区个数

示例:

./kafka-topics.sh --alter --topic testTopic 
--zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka 
--command-config ./config/client.properties --partitions 10

6.删除topic

命令格式:

./kafka-topics.sh --delete--topic topic名称 --zookeeper ZooKeeper的任意一个节点或者全部的IP:Port/kafka

命令示例:

./kafka-topics.sh --delete --topic testTopic 
--zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka

注意

在使用kafka-topics.sh命令删除topic的时候会有两种情况:

  • 如果topic没有使用过,那么可以彻底删除该topic
  • 如果topic使用过,那么没有真正地删除该topic,只是把该topic标记为删除(marked for deletion)

需要彻底删除使用过得topic,需要删除kafka中与当前topic相关的数据目录和zookeeper与当前topic相关的路径

彻底删除使用过的topic

假设删除的topic名字为testTopic,kafka的zookeeper root为/kafka

(1)删除与该topic相关的数据目录

数据目录需要查看kafka的实际配置路径:

server.properties

log.dirs=/var/kafka/log/tmp

删除命令

rm -rf /var/kafka/log/tmp/testTopic*

(2)删除topic

./kafka-topics.sh --delete --topic testTopic 
--zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka

(3)删除zookeeper上的topic相关路径

这个路径也需要查看kafka的实际配置路径:

server.properties

zookeeper.connect=192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka

# 进入到zookeeper的目录
bin/zkCli.sh

rmr /kafka/consumers/testTopic-group
rmr /kafka/config/topics/testTopic
rmr /kafka/brokers/topics/testTopic
rmr /kafka/admin/delete_topics/testTopic

(4)重启zookeeper和kafka,查看topic是否存在

./kafka-topics.sh --zookeeper 192.168.61.102:2181,192.168.61.202:2181,192.168.61.104:2181/kafka --list

猜你喜欢

转载自blog.csdn.net/qq_35260875/article/details/108651171
今日推荐