Урок по запуску Kafka сервера с использованием нового режима KRaft вместо Zookeeper, включая скачивание, настройку и запуск.
Key Takeaways
- KRaft — новый протокол управления метаданными в Kafka, пришедший на смену Zookeeper.
- Для запуска Kafka в режиме KRaft необходимо сгенерировать уникальный ID и отформатировать директорию логов.
- Файл server.properties позволяет запустить сервер, совмещающий функции брокера и контроллера.
- Запуск Kafka на Windows осуществляется через bat-скрипты, аналогичные для других ОС.
- Переход на KRaft упрощает архитектуру Kafka и повышает её независимость от внешних сервисов.
What the video covers
- Скачивание и распаковка Apache Kafka версии 3.6.1 с рекомендованной Scala 2.13.
- Объяснение двух режимов запуска Kafka: через Zookeeper и через KRaft, с акцентом на отказ от Zookeeper.
- Описание ролей конфигурационных файлов broker.properties, controller.properties и server.properties.
- Инструкция по генерации уникального идентификатора кластера с помощью kafka-storage и форматированию директории логов.
- Запуск Kafka сервера с использованием файла server.properties, который совмещает роли брокера и контроллера.
- Использование bat-скриптов для запуска сервера на Windows, с упоминанием аналогов для Mac и Linux.
- Пояснение о структуре директорий Kafka и их назначении.
- Подробности о логах и необходимости их форматирования для корректной работы в режиме KRaft.
- Подготовка к запуску нескольких серверов в кластере, упомянутая в конце урока.
- Общее понимание перехода Kafka на новый протокол управления метаданными без Zookeeper.
Chapters
- 00:00Введение и скачивание Kafka
- 00:54Режимы запуска Kafka: Zookeeper vs KRaft
- 01:39Обзор конфигурационных файлов Kafka
- 02:24Подготовка к запуску: структура каталогов и скрипты
- 03:54Генерация ID кластера и форматирование логов
- 05:13Запуск Kafka сервера с server.properties
- 07:39Завершение и подготовка к кластеру из нескольких серверов
Full Transcript — Download SRT & Markdown
Speaker A
Привет. На этом уроке запустим Kafka сервер. Для этого сначала надо скачать Kafka. Давайте это сделаем. Откроем браузер, наберём Apache Kafka download и откроем лист загрузок. Последняя версия сейчас — это 3.6.1 на момент записи видео, и здесь рекомендуется выбирать версию 2.13 Scala.
Speaker A
Давайте её скачаем. Итак, после того как мы скачали Kafka, надо архив этот распаковать в папку, где у вас будет Kafka находиться. Вот я сделал распаковку сюда, и вот у меня Kafka 2.13 Scala 3.6.1, у неё версия. Здесь есть иерархия директорий, которую
Speaker A
мы рассмотрим, но сначала давайте поговорим, в каком режиме мы будем запускать Kafka. Дело в том, что есть два варианта: через Zookeeper и через Raft. Так как Kafka движется в направлении отказаться от Zookeeper, во всяком случае отвязаться от него, то мы
Speaker A
будем запускать через Raft. Что такое в принципе Zookeeper и Raft, можно почитать. Ну по сути это система, которая обеспечивает управление метаданными в кластере, управление конфигом и обеспечивает целостность данных в брокерах. Она координирует брокеров, сервера, и через неё можно
Speaker A
запускать сервера. Это новый протокол, который появился в Kafka 2.8 в качестве замены Zookeeper. Ну естественно, мы будем пользоваться тогда Raft, не будем рассматривать Zookeeper. Итак, конфигурация находится в папочке, есть три файла. Мы увидим файл broker.properties — это конфигурация
Speaker A
сервера, который действует как брокер. То есть если мы запускаем нашу Kafka через этот конфиг, то это у нас будет брокер, и мы там настраиваем всё, что относится к брокеру. Если мы будем запускать через файл конфига controller.properties,
Speaker A
то наш сервер будет действовать как контроллер. То есть он будет таким менеджером метаданных в кластере, в котором запущено несколько серверов. То есть он будет координировать лидеров и так далее. А если мы запускаем сервер через файл server.properties, то наш запущенный сервер будет
Speaker A
действовать и как контроллер, и как брокер. Мы будем запускать через server.properties. Как запускать? У нас есть папочка либо внутри, либо Windows. Давайте заглянем в bin. Так, вот наш config: вот broker, controller, server, а вот наша папочка bin. Вот здесь
Speaker A
вот мы видим кучу файлов для запуска, а под Windows естественно аналогичные батники, и мы будем использовать эти батники. Так как я под Windows, то я буду показывать на примере батников, но ничего для вас не изменится, кроме расширения
Speaker A
файла, который вы будете вызывать, если вы запускаете под Mac или Linux. Итак, первая команда — нам надо сгенерировать ID для Kafka кластера, то есть уникальный идентификатор кластера, в котором мы будем запускать сервер. Для этого служит скрипт kafka-storage и команда format.
Speaker A
Давайте наберём. Я сейчас нахожусь в корне своей папки, хочу перейти внутрь директории, и я захожу ещё в bin, так как я под Windows, и теперь вызываю команду. Мне нужна команда kafka-storage, kafka-storage, и здесь параметр её —
Speaker A
[музыка] format. Запускаю, и вот сгенерирован каталог логов для совместимости с KRaft режимом. Зачем мы это делаем? А у нас мы укажем команду тот же самый скрипт kafka-storage, затем format, параметр -, и укажем UUID, который был сгенерирован, файл server.properties в KRaft. Итак, что такое директория с логами и зачем мы её форматируем? Директория с логами — это каталог, в котором записываются все журнальные файлы, логи при работе Kafka сервера. Она структурирована по партициям. Нам надо её отформатировать для того, чтобы там всё
Speaker A
корректно писалось в режиме. Итак, я использую ту же [музыка] команду kafka-storage, затем format, пишу, минут, копирую ID, вставляю, затем минус C config, и мне надо указать путь к конфигу. Я получил запись из already formatted, так как я уже форматировал. Вы получите
Speaker A
следующую запись: вот такую вот при успешном форматировании. Так, и теперь после форматирования для совместимости с режимом нам осталось только запустить Kafka с дефолтным конфигом. На данный момент мы не будем менять server.properties файл, нам достаточно дефолтного. Запустим команду kafka-server-start
Speaker A
и укажем конфиг, на котором мы запускаем. То есть если бы мы запускали на других конфигах, то это был бы либо брокер, либо контроллер. Наш запущенный сервер с помощью файла server.properties может быть и брокером, и контроллером. Так,
Speaker A
запускаю. Вот, стартанул Kafka сервер, всё, сервер работает. Мы видим URL и другие все переменные, которые установлены здесь при запуске. Можем их промотать. Итак, мы теперь можем приступать. С какой? Но перед этим ещё сделан урок для того, чтобы посмотреть, как запустить несколько
Speaker A
серверов в кластере.
Speaker A
серверов в кластере
Topics:KafkaKRaftZookeeperзапуск Kafkaконфигурация Kafkabroker.propertiescontroller.propertiesserver.propertieskafka-storageкластер Kafka











