1.在kafka安装目录下获取所有的topic:
./kafka-topics --zookeeper bigdata106:2181 --list
test
test1
test2
2.创建获取kafka topic信息脚本kafka_topic.sh
替换对应 kafka_path、topic_name
#vim kafka_topic.sh
!/bin/bash
kafka_path=/data/application/kafka/bin
topic_names=("test" "test1" "test3")
# 循环遍历数组中的每个topic_name
for topic_name in "${topic_names[@]}"; do
# 获取 partition_count 和 replication_count
partition_count=$($kafka_path/kafka-topics --describe --topic $topic_name --zookeeper hadoop106:2181 | grep "PartitionCount:" | awk '{print $3}' | awk -F':' '{print $2}')
replication_count=$($kafka_path/kafka-topics --describe --topic $topic_name --zookeeper hadoop106:2181 | grep "ReplicationFactor:" | awk '{print $3}' | awk -F':' '{print $2}')
# 输出 topic_name、partition_count 和 replication_count
echo "topic:$topic_name | partition_count: $partition_count | replication_count: $replication_count"
# 追加命令到文件 kafka_create_topic.sh
echo '$'"kafka_path"'/kafka-topics --zookeeper bigdata106:2181 --create --topic '"$topic_name"' --replication-factor '"$replication_count"' --partitions '"$partition_count" >> ./kafka_create_topic.sh
done
3.最后在脚本执行的当前目录下生成kafka_create_topic.sh脚本文件
进去指定kafka_path 一键创建topic
#路径是新增部分
kafka_path=/data/application/kafka/bin
$kafka_path/kafka-topics --zookeeper hadoop106:2181 --create --topic test --replication-factor 1 --partitions 1
$kafka_path/kafka-topics --zookeeper hadoop106:2181 --create --topic test1 --replication-factor 2 --partitions 2
$kafka_path/kafka-topics --zookeeper hadoop106:2181 --create --topic test2 --replication-factor 3 --partitions 3
4.最后执行脚本即可创建出所有的topic