Архитектура кластера Apache Kafka: основы Big Data для начинающих

Apache Kafka, Data Science, администрирование

В прошлой статье мы говорили о преимуществах Apache Kafka. Сегодня рассмотрим, какие компоненты входят структуру этой стриминговой платформы, благодаря чему Kafka является лучшим брокером сообщений в мире Big Data. Читайте далее про архитектуру кластера Кафка, которая делает ее таким мощным средством хранения и обмена большими массивами данных.

Главные компоненты кластера Apache Kafka

Прежде всего отметим, что Apache Kafka – это не просто брокер сообщений, а целая стриминговая платформа, на базе которой может быть построена целая корпоративная инфраструктура анализа и обработки Big Data. В этой статье мы разберем ее ключевые составляющие с точки зрения администратора кластера. Итак, компоненты архитектуры Apache Kafka тесно связаны друг с другом: каждый из них выполняет определенную задачу так, чтобы обеспечить других необходимым пакетом метаданных для их дальнейшей работы. Итак, структуру кластера Kafka формируют следующие компоненты:

  • служба ZooKeeper;
  • распределенный сервер Kafka.

Как работает каждый из вышеперечисленных компонентов мы подробнее рассмотрим далее.

Служба ZooKeeper

Apache ZooKeeper – это распределенная служба для хранения информации о конфигурации основного сервера приложений. ZooKeeper также выполняет функцию управления реакцией сервера на реакцию клиента. Таким образом, каждый клиент посылает сообщение серверу, который находится под управлением ZooKeeper, давая последнему понять, что клиент жив (alive). В ответ на это ZooKeeper генерирует ответ-подтверждение на сервер для дальнейших действий с клиентом. Если так произошло, что клиент не отвечает, ZooKeeper ждет некоторое время (timeout). По истечению тайм-аута ZooKeeper дает статус «неактивен» клиенту и, таким образом, обмен данными с этим клиентом прекращается.

Apache Kafka, Data Science, администрирование
Структура службы ZooKeeper

Для того, чтобы настроить ZooKeeper, необходимо выполнить следующие действия:

  • загрузить ZooKeeper с официального сайта https://zookeeper.apache.org/;
  • в загруженной папке найти папку «conf» и сделать копию файла «zoo_sample.cfg»;
  • название копии изменить на «zoo.cfg», открыть ее и в строчке «dataDir=/tmp/zookeeper» прописать полный путь к загруженной папке ZooKeeper (например, dataDir=C:\ZooKeeper\apache-zookeeper-3.6.2-bin)
  • добавить переменную среды ZOOKEEPER_HOME и в значении указать путь к папке ZooKeeper (например, ZOOKEEPER_HOME = C:\ZooKeeper\apache-zookeeper-3.6.2-bin)
  • в системную переменную Path добавить запись «%ZOOKEEPER_HOME%\bin»
  • запустить службу ZooKeeper через командную строку командой zkserver.
Apache Kafka, Data Science, администрирование
Запущенная служба ZooKeeper

Распределенный сервер Kafka

Распределенный сервер Kafka – это система, которая способна работать, получать и рассылать сообщения на различных узлах (брокерах) кластера. Данные о конфигурации Kafka-сервера хранит служба ZooKeeper.

Apache Kafka, Data Science, администрирование
Структура Kafka-сервера

Сам же сервер хранит информацию о топиках (topics), подписчиках (consumer) и издателях (producer). Сервер также отвечает за рассылку и хранение сообщений. По умолчанию, сообщение хранится на сервере 7 дней и затем удаляется. Для того, чтобы запустить Kafka-сервер необходимо выполнить следующие действия:

  • скачать бинарный архив с официального сайта apache.org/downloads;
  • в загруженной папке найти папку «config», открыть в ней файл с названием «server.properties» и в строке «log.dirs= /tmp/kafka-logs» указать путь для сохранения логов (например, log.dirs=c:/kafka/kafka-logs);
  • в этой же папке редактировать файл с названием «zookeeper.properties»: в строке «dataDir=/tmp/zookeeper» поменять значение на «dataDir=c:/kafka/zookeeper-data».

Таким образом, были произведены базовые настройки сервера. Однако, сервер кафки не будет работать, если не запущена служба ZooKeeper. Для того, чтобы одновременно запустить ее с сервером, можно создать файл с расширением .bat и прописать в него следующие команды:

start C:\kafka\bin\windows\zookeeper-server-start.bat C:\kafka\config\zookeeper.properties
timeout 10
start C:\kafka\bin\windows\kafka-server-start.bat C:\kafka\config\server.properties
Apache Kafka, Data Science, администрирование
Запущенный сервер Kafka

Таким образом, архитектура Kafka обеспечивает отказоустойчивость и надежность этой Big Data системы, делая ее полезным средством для каждого специалиста в области анализа и обработки больших данных, от Data Scientist’а до разработчика распределенных приложений. В следующей статье мы расскажем про внутреннее устройство брокера Kafka.

Освоить Apache Kafka на профессиональном уровне в качестве администратора Big Data кластеров, разработчика распределенных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Kafka в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

Записаться на курс

Смотреть раcписание

Источники

  1. https://habr.com/ru/post/496182/

Добавить комментарий

Поиск по сайту