В прошлый раз мы говорили про работу с потребительскими группами в Kafka. Сегодня рассмотрим основы работы со смещениями в брокере Kafka. Читайте далее про особенности работы со смещениями в брокере Apache Kafka, благодаря которым этот распределенный брокер может избегать различных потерь данных.
Как работают смещения в Kafka: особенности обработки Big Data записей
Смещение (offset) в Kafka — порядковый номер (индекс), который указывает на положение записи (сообщения) в топике (или в разделе топика). Информация о смещениях (порядковые номера всех записей) хранится в специальном топике __consumer_offsets
. Брокер Kafka узнает о появлении новой записи благодаря фиксации смещений. Фиксация смещений — это обновление текущей позиции (или добавление новой) записи в разделе топика. При фиксации смещения Kafka публикует сообщение об этом событии в топик commit-log и сохраняет структуру в памяти, где было сопоставление раздела или топика с последним смещением. Это делается для быстрого извлечения записи [1].
Как работает импорт и экспорт смещений в брокере Kafka: несколько практических примеров
За работу со смещениями (и не только с ними) отвечает утилита kafka-run-class.sh
(kafka-run-class.bat
в Windows), которая отвечает за выполнение соответствующих Java-классов в среде брокера Kafka. Для того, чтобы выполнить экспорт (выгрузить все смещения) смещений, необходимо указать группу, в которой они находятся (за это отвечает команда --group
), а затем через команду --output-file
выгрузить смещения, создав соответственный файл [1]:
kafka-run-class.sh kafka.tools.ExportZkOffsets --zkconnect zoo1.example.com:2181/kafka-cluster --group testgroup --output-file offsets
Импорт смещений представляет собой противоположность экспорту, то есть на входе принимается файл, полученный в результате экспорта из прошлого раздела. При импорте смещений в другие разделы они устанавливаются как текущие [1]:
kafka-run-class.sh kafka.tools.ImportZkOffsets --zkconnect zoo1.example.com:2181/kafka-cluster --input-file offsets
Стоит также отметить, что для команды импорта параметр —group не используется, так как названия групп потребителей включены в импортируемый файл по умолчанию.
Таким образом, благодаря смещениям, брокер Kafka может гарантировать весьма надежное хранение Big Data с низким уровнем их потерь. Это делает Apache Kafka универсальным и надежным средством для хранения и обмена большими потоками данных, что позволяет активно использовать этот брокер сообщений в задачах Data Science и разработке распределенных приложений.
Администрирование кластера Kafka
Код курса
KAFKA
Ближайшая дата курса
12 февраля, 2025
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.
Освоить Apache Kafka на профессиональном уровне в качестве администратора Big Data кластеров, разработчика распределенных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Kafka в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:
- Администрирование кластера Kafka
- Apache Kafka для разработчиков
- Администрирование кластера Arenadata Streaming Kafka
Источники
- Н.Нархид, Г.Шапира, Т.Палино. Apache Kafka. Потоковая обработка и анализ данных