2.3 Kafka 常用命令操作
2.3.1 创建 topic
kafka-topics.sh --create --zookeeper hadoop201:2181 --replication-factor 3 --partitions 1 --topic first
说明:
kafka-topics.sh
任何和 topic 相关的操作都使用这个命令--create
表示创建一个 topic--zookeeper
指明任意一个 zookeeper 服务器地址--replication-factor
表示每个 topic 的副本数. 注意: 副本数必须小于等于 kafka 集群的数量.--partitions
这个 topic 的分区的数量--topic
这个 topic 的名字.
2.3.2 查看 topic 列表
kafka-topics.sh --list --zookeeper hadoop201:2181
2.3.3 查看某个 topic 的分区情况
kafka-topics.sh --describe --topic third --zookeeper hadoop201:2181
说明:
- 第一行是分区的概述
- 剩下的每一行是一个分区信息. 因为 topic third 有 4 个分区, 所以有 4 行.
Leader
: 表示这个分区的leader
所在的服务器id
. 随机分配的.leader
负责这个分区的所有读和写的工作. 其他的非 leader 副本, 仅仅是 leader 的备份.Relicas
: 表示这个分区的所有复本所在的服务器 id. 这只考虑 logs 中的文件, 即使 broker 挂了, 也会显示Isr
: 这个表示活着的 broker, 是 Relicas 的子集.
2.3.4 删除 topic
kafka-topics.sh --delete --topic first --zookeeper hadoop201:2181
2.3.5 启动命令行生产者, 并发送消
kafka-console-producer.sh --broker-list hadoop201:9092 --topic second
2.3.6 启动命令行消费者, 消费消息
kafka-console-consumer.sh --zookeeper hadoop201:2181 --from-beginning --topic second
说明:
--from-beginning
:会把 second 主题中以往所有的数据都读取出来。根据业务场景选择是否要添加.如果不添加
--from-beginning
则只会读取以后发送的数据.