Установка Apache Kafka в CentOS Stream

Пошаговое руководство по установке Kafka в CentOS. Apache Kafka используется для систем потоковой аналитики, журналирования, передачи данных в хранилище и т.д.

apache kafka

Установка дополнительных пакетов

для установки нам потребуется nano, tar и wget, если они уже установлены в системе, этот пункт можно пропустить.

yum install tar wget nano

Установка Java

Для работы компонентов Kafka необходимо предварительно установить Java JDK

yum install java

по кончанию установки проверяем версию

java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)

Создание пользователя Kafka

Сервис Kafka и Zookeeper, запускаются от пользователя Kafka, необходимо его предварительно создать

useradd kafka -m

так же добавляем пользователя в группу wheel

usermod -aG wheel kafka

Скачивание Kafka

Переходим на страницу загрузки Kafka и скопируем ссылку на последнюю версию.

wget https://dlcdn.apache.org/kafka/3.1.0/kafka_2.13-3.1.0.tgz

Создание директорий

Создание следующие директории для установки Kafka

mkdir -p /opt/kafka
mkdir -p /opt/data/zookeeper

Они нам понадобятся чуть позже.

Установка kafka

Переходим в директорию /opt/kafka и расколдовываем архив.

tar -xvzf /<download_dir>/kafka_2.13-3.1.0.tgz --strip 1

Либо из директории где мы находимся, распаковываем архив и переносим все файлы

tar -xvzf kafka_2.13-3.1.0.tgz
mv kafka_2.13-3.1.0/* /opt/kafka/

Установка прав на директорию Kafka

Так как kafka и zookeeper работают с правами обычного пользователя, назначаем владельцем пользователя kafka

chown -R kafka:kafka -R /opt/kafka/
chown -R kafka:kafka -R /opt/data/zookeeper

Настройка Kafka

Прежде чем приступить к запуску, необходимо настроить zookeeper и kafka (по необходимости)

Открываем файл настройки zookeeper

nano /opt/kafka/config/zookeeper.properties

и изменяем параметр dataDir, на значение ниже

dataDir=/opt/data/zookeeper

если необходимо разрешить удаление топиков из Kafka, то в файл /opt/kafka/config/server.properties

nano /opt/kafka/config/server.properties

Добавляем в конце параметр

delete.topic.enable = true

Создание сервисов

Создание сервиса zookeeper

Создаем файл сервиса

nano /etc/systemd/system/zookeeper.service

со следующим содержимым

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/bin/bash -c '/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties'
ExecStop=/bin/sh -c '/opt/kafka/bin/zookeeper-server-stop.sh'
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

Больше никаких настроек не требуется, запуском сервисам будет заниматься Kafka

Создание сервиса Kafka

Создаем файл сервиса

nano /etc/systemd/system/kafka.service

со следующим содержимым

[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/bash -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties'
ExecStop=/bin/bash -c '/opt/kafka/bin/kafka-server-stop.sh'
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

Включаем и запускаем сервис

systemctl enable kafka
systemctl start kafka

Открытие доступа по сети к Kafka

По умолчанию Kafka доступна только на локальном интерфейсе. Для открытия доступа по сети, необходимо в файл /opt/kafka/config/server.properties добавить параметр listeners

nano /opt/kafka/config/server.properties

listeners=PLAINTEXT://<ip>:9092

где <ip> - IP адрес сетевого интерфейса

/opt/kafka/config/server.properties

 

Открываем порт

firewall-cmd --add-port=9092/tcp --permanent
firewall-cmd --reload

и перезапускаем Kafka

systemctl restart kafka

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