1、列出集群中的topic
bin/kafka-topics.sh --zookeeper spark1:2181,spark2:2181,spark3:2181 --list
2、创建topic
replication-factor为副本因子数量, partitions为分区数量
bin/kafka-topics.sh --zookeeper spark1:2181,spark2:2181,spark3:2181 --create --topic weblogs --replication-factor 3 --partitions 1
注意:kafka-logs目录会产生topic的消息文件,为什么要生产此消息文件呢?就是当一台机器挂了后,其他机器会基于本机的此topic信息继续对外提供服务。
3、创建一个生产者
bin/kafka-console-producer.sh --broker-list spark1:9092,spark2:9092,spark3:9092 --topic weblogs
4、创建一个消费者
from-beginning表示从开始位置开始消费
bin/kafka-console-consumer.sh --zookeeper spark1:2181,spark2:2181,spark3:2181 --topic weblogs --from-beginning
5、删除topic
1、命令删除
Kafka 删除topic的命令是:
bin/kafka-topics.sh --delete --zookeeper spark1:2181,spark2:2181,spark3:2181 --topic weblogs
如果kafaka启动时加载的配置文件中server.properties没有配置"delete.topic.enable=true",那么此时的删除并不是真正的删除,而是把topic标记为删除:marked for deletion
被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/topic名称,如果你删除了此处的topic,那么marked for deletion 标记消失
zookeeper的config中也有有关topic的配置信息
ls /config/topics/topic名称
2、手动删除
1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
2、
(1)登录zookeeper客户端的命令:
zookeeper/bin/zkCli.sh
(2)找到topic所在的目录:
ls /brokers/topics
(3)找到要删除的topic,执行如下命令即可,此时topic被彻底删除:
rmr /brokers/topics/topic名称