Шпаргалка по командам кафки
За полгода работы с кафкой накопился набор часто используемых команд. А из-за того, что CLI интерфейс кафки совершенно неудобный, держать команды в голове невозможно, и приходится писать очередную шпаргалку.
Больше всего раздражает разделение команд по нескольким утилитам. Получается, что для выполнения одного действия необходимо знать не только аргументы командной строки, но и название конкретной утилиты. А получилось так потому что админские команды отправляются в кафку через однострочные баш-скрипты, запускающие Scala-классы.
exec $(dirname $0)/kafka-run-class kafka.admin.ConfigCommand "$@"
Поэтому приходится вести заметку с нужными командами
Посмотреть оффсеты всех топиков
kafka-consumer-groups --bootstrap-server kafka.dev.big-company.com:9092 --describe --group group.dev
Выводит оффсеты и лаги группы group.dev
по всем топикам. Каждая партиция отдельно.
Сброс оффсетов
kafka-consumer-groups --bootstrap-server kafka.dev.big-company.com:9092 --reset-offsets --to-offset 340000 --group group.dev --topic actions --execute
Выставляет оффсет топика actions
на указанное значение, если это возможно. Консьюмеры должны быть выключены в момент исполнения команды.
kafka-consumer-groups --bootstrap-server kafka.dev.big-company.com:9092 --reset-offsets --to-latest --group group.dev --topic actions --execute
Выставляет оффсет топика actions
на самое раннее возможное значение. Консьюмеры должны быть выключены.
Для предыдущих двух команд можно указать --all-topics
вместо названия топика.
Удаление и создание топиков
kafka-topics --zookeeper zk.dev.big-company.com --create --replication-factor 2 --partitions 2 --topic actions
Создаёт топик с указанным количеством реплик и партиций.
kafka-topics --zookeeper zk.dev.big-company.com --delete --topic actions
Удаление топика.
Просмотр информации о топиках
kafka-topics --zookeeper zk.dev.big-company.com --list
Выводит список всех топиков.
kafka-topics --zookeeper zk.dev.big-company.com --describe
Выводит всю информацию по топикам: кастомные конфиги, количество реплик и партиций, лидирующую партицию.
kafka-configs --zookeeper zk.dev.big-company.com --describe --entity-type topics --entity-name actions
Выводит кастомные конфиги топика, то есть параметры, которые перегружают основной конфигурационный файл кафки.
Конфигурация топиков
kafka-topics.sh --zookeeper zk.dev.big-company.com --alter --topic actions --config segment.bytes=104857600
Выставляет значение segment.bytes
для топика actions
.
kafka-topics.sh --zookeeper zk.dev.big-company.com --alter --topic actions --delete-config segment.bytes
Удаляет кастомный параметр. Для этого топика будет использоваться параметр из общего конфига.
Очистка сообщений топика
Отдельной команды для этого нет, поэтому надо хитрить с таймаутом, после которого сообщения удаляются с жёсткого диска.
kafka-topics.sh --zookeeper zk.dev.big-company.com --alter --topic actions --config retention.ms=1000
Ждём 1000 миллисекунд…
kafka-topics.sh --zookeeper zk.dev.big-company.com --alter --topic mytopic --delete-config retention.ms