You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取Kafka各Broker分区总数 求集群级脚本改造为单Broker统计方案

Kafka单Broker分区统计脚本

针对你的多数据中心分布式架构需求,这里提供两个适配单Broker的分区统计脚本,分别用于统计Broker作为Leader的分区数,以及Broker上存储的所有副本分区数:

1. 统计指定Broker作为Leader的分区总数

这个脚本是原集群级脚本的改造版,仅统计目标Broker承担Leader角色的分区数量:

zookeeper="ZK_SERVER1:2181,ZK_SERVER2:2181,ZK_SERVER3:2181"
target_broker=1  # 替换为你需要统计的Broker ID
sum=0

for topic in $(/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --list --zookeeper $zookeeper); do
    # 过滤当前Topic中Leader为指定Broker的分区记录并计数
    count=$(/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --describe --zookeeper $zookeeper --topic $topic | grep "Leader: $target_broker" | wc -l)
    sum=$((sum + count))
done

echo "Broker $target_broker 作为Leader的分区总数: $sum"

2. 统计指定Broker上的所有副本分区总数

如果需要了解该Broker的实际存储负载(包含自己作为Leader和Follower的分区),可以使用这个脚本:

zookeeper="ZK_SERVER1:2181,ZK_SERVER2:2181,ZK_SERVER3:2181"
target_broker=1  # 替换为你需要统计的Broker ID
sum=0

for topic in $(/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --list --zookeeper $zookeeper); do
    # 过滤当前Topic中副本分布在指定Broker的分区记录并计数
    count=$(/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --describe --zookeeper $zookeeper --topic $topic | grep -E "Replicas:.*$target_broker|Isr:.*$target_broker" | wc -l)
    sum=$((sum + count))
done

echo "Broker $target_broker 上的所有副本分区总数: $sum"

使用说明

  • 替换zookeeper变量中的地址为你的ZK集群地址
  • 修改target_broker为目标Broker的ID号
  • 脚本基于HDP环境下的Kafka命令路径编写,若你的环境路径不同,需调整kafka-topics.sh的路径

内容的提问来源于stack exchange,提问作者maverick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:50:37