Skip to content
Get App

04. Start Kafka Server. Zookeeper vs KRaft (Kafka - полный курс)

Урок по запуску 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.

Answers

Questions about this video

Что такое режим KRaft в Kafka и зачем он нужен?

KRaft — это новый протокол управления метаданными в Kafka, который пришёл на смену Zookeeper. Он позволяет отказаться от внешнего сервиса Zookeeper, упрощая архитектуру и повышая надёжность кластера.

Как сгенерировать уникальный идентификатор кластера для Kafka в режиме KRaft?

Для генерации уникального ID используется скрипт kafka-storage с параметром format. Этот ID необходим для форматирования директории логов и корректной работы сервера в режиме KRaft.

Какие конфигурационные файлы используются для запуска Kafka и как они отличаются?

broker.properties настраивает сервер как брокер, controller.properties — как контроллер, управляющий метаданными, а server.properties совмещает обе роли, позволяя запустить сервер и как брокер, и как контроллер.

Full Transcript — Download SRT & Markdown

00:02
Speaker A
Привет. На этом уроке запустим Kafka сервер. Для этого сначала надо скачать Kafka. Давайте это сделаем. Откроем браузер, наберём Apache Kafka download и откроем лист загрузок. Последняя версия сейчас — это 3.6.1 на момент записи видео, и здесь рекомендуется выбирать версию 2.13 Scala.
00:32
Speaker A
Давайте её скачаем. Итак, после того как мы скачали Kafka, надо архив этот распаковать в папку, где у вас будет Kafka находиться. Вот я сделал распаковку сюда, и вот у меня Kafka 2.13 Scala 3.6.1, у неё версия. Здесь есть иерархия директорий, которую
00:54
Speaker A
мы рассмотрим, но сначала давайте поговорим, в каком режиме мы будем запускать Kafka. Дело в том, что есть два варианта: через Zookeeper и через Raft. Так как Kafka движется в направлении отказаться от Zookeeper, во всяком случае отвязаться от него, то мы
01:15
Speaker A
будем запускать через Raft. Что такое в принципе Zookeeper и Raft, можно почитать. Ну по сути это система, которая обеспечивает управление метаданными в кластере, управление конфигом и обеспечивает целостность данных в брокерах. Она координирует брокеров, сервера, и через неё можно
01:39
Speaker A
запускать сервера. Это новый протокол, который появился в Kafka 2.8 в качестве замены Zookeeper. Ну естественно, мы будем пользоваться тогда Raft, не будем рассматривать Zookeeper. Итак, конфигурация находится в папочке, есть три файла. Мы увидим файл broker.properties — это конфигурация
02:06
Speaker A
сервера, который действует как брокер. То есть если мы запускаем нашу Kafka через этот конфиг, то это у нас будет брокер, и мы там настраиваем всё, что относится к брокеру. Если мы будем запускать через файл конфига controller.properties,
02:24
Speaker A
то наш сервер будет действовать как контроллер. То есть он будет таким менеджером метаданных в кластере, в котором запущено несколько серверов. То есть он будет координировать лидеров и так далее. А если мы запускаем сервер через файл server.properties, то наш запущенный сервер будет
02:46
Speaker A
действовать и как контроллер, и как брокер. Мы будем запускать через server.properties. Как запускать? У нас есть папочка либо внутри, либо Windows. Давайте заглянем в bin. Так, вот наш config: вот broker, controller, server, а вот наша папочка bin. Вот здесь
03:10
Speaker A
вот мы видим кучу файлов для запуска, а под Windows естественно аналогичные батники, и мы будем использовать эти батники. Так как я под Windows, то я буду показывать на примере батников, но ничего для вас не изменится, кроме расширения
03:31
Speaker A
файла, который вы будете вызывать, если вы запускаете под Mac или Linux. Итак, первая команда — нам надо сгенерировать ID для Kafka кластера, то есть уникальный идентификатор кластера, в котором мы будем запускать сервер. Для этого служит скрипт kafka-storage и команда format.
03:54
Speaker A
Давайте наберём. Я сейчас нахожусь в корне своей папки, хочу перейти внутрь директории, и я захожу ещё в bin, так как я под Windows, и теперь вызываю команду. Мне нужна команда kafka-storage, kafka-storage, и здесь параметр её —
04:24
Speaker A
[музыка] format. Запускаю, и вот сгенерирован каталог логов для совместимости с KRaft режимом. Зачем мы это делаем? А у нас мы укажем команду тот же самый скрипт kafka-storage, затем format, параметр -, и укажем UUID, который был сгенерирован, файл server.properties в KRaft. Итак, что такое директория с логами и зачем мы её форматируем? Директория с логами — это каталог, в котором записываются все журнальные файлы, логи при работе Kafka сервера. Она структурирована по партициям. Нам надо её отформатировать для того, чтобы там всё
05:13
Speaker A
корректно писалось в режиме. Итак, я использую ту же [музыка] команду kafka-storage, затем format, пишу, минут, копирую ID, вставляю, затем минус C config, и мне надо указать путь к конфигу. Я получил запись из already formatted, так как я уже форматировал. Вы получите
05:34
Speaker A
следующую запись: вот такую вот при успешном форматировании. Так, и теперь после форматирования для совместимости с режимом нам осталось только запустить Kafka с дефолтным конфигом. На данный момент мы не будем менять server.properties файл, нам достаточно дефолтного. Запустим команду kafka-server-start
06:45
Speaker A
и укажем конфиг, на котором мы запускаем. То есть если бы мы запускали на других конфигах, то это был бы либо брокер, либо контроллер. Наш запущенный сервер с помощью файла server.properties может быть и брокером, и контроллером. Так,
07:15
Speaker A
запускаю. Вот, стартанул Kafka сервер, всё, сервер работает. Мы видим URL и другие все переменные, которые установлены здесь при запуске. Можем их промотать. Итак, мы теперь можем приступать. С какой? Но перед этим ещё сделан урок для того, чтобы посмотреть, как запустить несколько
07:39
Speaker A
серверов в кластере.
08:06
Speaker A
серверов в кластере
Topics:KafkaKRaftZookeeperзапуск Kafkaконфигурация Kafkabroker.propertiescontroller.propertiesserver.propertieskafka-storageкластер Kafka

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries and speaker detection. 30 minutes free.

Or transcribe another YouTube video here →