我需要Kafka主题中存储的消息数。这与是否有消费者消费了这些消息无关。
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic
上面给出了主题的偏移量?以上是否等于Kafka主题中当前存储的消息数?
uxhixvfz1#
是的,如果earliest offset等于零,则此值等于消息数。如果earliest offset不等于零,则需要计算每个分区的差值,然后求和。
py49o6xq2#
不完全是。您得到的数字仅指所有主题分区的当前最大偏移量。消息计数还取决于该主题的分区开始偏移量。你可以跑 kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic --time -1 以及 kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic --time -2 分别计算每个分区的消息计数,方法是从endoffset中减去beginningoffset,然后将它们相加,得到该主题的总记录计数。
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic --time -1
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic --time -2
m2xkgtsf3#
上面给出了主题的偏移量?是的,它给出了当前最大偏移量以上是否等于Kafka主题中当前存储的消息数?不,这不是Kafka中的邮件数,因为在保留期之后,邮件将从主题中删除,所以偏移量!=邮件数以获取Kafka中的消息数
brokers="<broker1:port>" topic=<topic-name> sum_1=$(/usr/hdp/current/kafka-broker/bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list $brokers --topic $topic --time -1 | grep -e ':[[:digit:]]*:' | awk -F ":" '{sum += $3} END {print sum}') sum_2=$(/usr/hdp/current/kafka-broker/bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list $brokers --topic $topic --time -2 | grep -e ':[[:digit:]]*:' | awk -F ":" '{sum += $3} END {print sum}') echo "Number of records in topic ${topic}: "$((sum_1 - sum_2))
其中option--time-1=>当前最大偏移量&--time-2是当前最小偏移量
3条答案
按热度按时间uxhixvfz1#
是的,如果earliest offset等于零,则此值等于消息数。如果earliest offset不等于零,则需要计算每个分区的差值,然后求和。
py49o6xq2#
不完全是。您得到的数字仅指所有主题分区的当前最大偏移量。消息计数还取决于该主题的分区开始偏移量。
你可以跑
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic --time -1
以及kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic --time -2
分别计算每个分区的消息计数,方法是从endoffset中减去beginningoffset,然后将它们相加,得到该主题的总记录计数。m2xkgtsf3#
上面给出了主题的偏移量?是的,它给出了当前最大偏移量
以上是否等于Kafka主题中当前存储的消息数?不,这不是Kafka中的邮件数,因为在保留期之后,邮件将从主题中删除,所以偏移量!=邮件数
以获取Kafka中的消息数
其中option--time-1=>当前最大偏移量&--time-2是当前最小偏移量