如何获得一个集群中所有Kafka主题的列表,沿着主题可用的分区号和唯一的分区号。Java代码或cli命令将不胜感激。
dgenwo3n1#
要列出所有Kafka主题:
bin/kafka-topics.sh --list --zookeeper localhost:2181,localhost:2182
要列出特定主题的所有分区,您需要运行以下命令(分区计数以PartitionCount形式列出):
PartitionCount
./kafka-topics.sh --describe --zookeeper localhost:2181,localhost:2182 --topic myTopic Topic:myTopic PartitionCount:4 ReplicationFactor:1 Configs: Topic: myTopic Partition: 0 Leader: 1001 Replicas: 1001 Isr: 1001 Topic: myTopic Partition: 1 Leader: 1001 Replicas: 1001 Isr: 1001 Topic: myTopic Partition: 2 Leader: 1001 Replicas: 1001 Isr: 1001 Topic: myTopic Partition: 3 Leader: 1001 Replicas: 1001 Isr: 1001
huus2vyu2#
Kafka topic list和detail命令可以结合在一起来实现这个结果。下面是一个示例bash脚本文件,可以用来列出所有带有分区计数的主题。
# !/bin/bash while [[ "$#" > 0 ]]; do case $1 in -i|--zookeeper_ip) ZOOKEEPER_IP="$2"; shift;shift;; *) usage "Unknown parameter passed: $1"; shift; shift;; esac; done echo "Zookeepr IP: $ZOOKEEPER_IP" TOPICS=$(kafka-topics.sh --list --zookeeper ${ZOOKEEPER_IP}:2181) for TOPIC in ${TOPICS}; do TOPIC_DETAIL=$(kafka-topics.sh --zookeeper ${ZOOKEEPER_IP}:2181 --topic ${TOPIC} --describe | grep -i "config" | column -t) echo ${TOPIC_DETAIL} | awk '{print $2, $4}' done
将上述文件另存为bash脚本(例如get-topics-partition.sh),并使用以下命令运行。./get-topics-partition.sh -i <kafka_zookeeper_ip_without_port>个
get-topics-partition.sh
./get-topics-partition.sh -i <kafka_zookeeper_ip_without_port>
**注意:**不要忘记给予适当的权限来执行档案。
例如chmod +x get-topics-partition.sh
chmod +x get-topics-partition.sh
2条答案
按热度按时间dgenwo3n1#
要列出所有Kafka主题:
要列出特定主题的所有分区,您需要运行以下命令(分区计数以
PartitionCount
形式列出):huus2vyu2#
Kafka topic list和detail命令可以结合在一起来实现这个结果。下面是一个示例bash脚本文件,可以用来列出所有带有分区计数的主题。
将上述文件另存为bash脚本(例如
get-topics-partition.sh
),并使用以下命令运行。./get-topics-partition.sh -i <kafka_zookeeper_ip_without_port>
个**注意:**不要忘记给予适当的权限来执行档案。
例如
chmod +x get-topics-partition.sh