管理 topic 使用的是,kafka 内置的一个脚本 kafka-topics.sh ,这个脚本默认在 kafka 安装目录的 bin 目录下。
1. 创建 kafka 环境变量
cat > /etc/profile.d/kafka.sh <<'EOF'
#!/bin/bash
export KAFKA_HOME=/app/tools/kafka_2.13-3.5.1
export PATH=$PATH:${KAFKA_HOME}/bin
EOF
#加载环境变量
source /etc/profile.d/kafka.sh
2. 运行管理脚本,查看帮助信息
#直接运行这个脚本即可,详细说明了如何使用,与 --help 类似
kafka-topics.sh
直接运行查看帮助信息即可,看不懂的直接译文翻译即可,我这里说明几个常用的 增删改查。
3. 创建topic
3.1 创建名为 bihuang-linux1 的topic
--create #创建
--bootstrap-server #指定集群IP地址
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --create --topic bihuang-linux1
3.2 创建 topic 并指定 partition
--partitions #指定分区数
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --create --topic linux-001 --partitions 3
3.3 创建 topic 指定 partition 及 replication
--replication-factor #指定副本数
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --create --topic linux-002 --partitions 3 --replication-factor 2
注意:
创建的副本数不得超过现有集群中存活的节点数
如现kafka集群中共有5个节点,存活3个节点,如果创建4 replication(副本),是无法创建的
4. 查看topic
4.1 查看集群的topic列表
--list #查看
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --list
如上图,可以查看到,刚刚创建的所有 topic
__consumer_offsets 里面存储着 topic 的 offsets 偏移量
4.2 查看所有的topic详细信息
--describe #查看 topic 详细信息
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --describe
4.3 查看指定的 topic 详细信息
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --describe --topic linux-002
5. 修改 topic
5.1 修改分区数量
--alter #修改
--partitions #指定分区数
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --topic linux-002 --alter --partitions 5
修改过后再查看则已经从原来的 3 个分区,变成了5个
注意:
修改分区数时,只能改大不能改小。
副本数量不得修改
6. 删除topic
--delete #删除
kafka-topics.sh --bootstrap-server 192.168.99.191:9092,192.168.99.192:9092,192.168.99.193:9092 --delete --topic linux-002