Введение
Apache Kafka — это распределенная платформа потоковой передачи событий с открытым исходным кодом, разработанная Apache Software Foundation. Это написано на языках программирования Scala и Java. Вы можете установить Kafka на любую платформу, поддерживающую язык программирования Java.
В этом руководстве представлены подробные инструкции по установке Apache Kafka в системе Linux Ubuntu 22.04 LTS.
Предпосылки
У вас должен быть доступ с привилегированной учетной записью sudo к системе Linux Ubuntu 22.04.
Если вы хотите установить Apache Kafka на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Установить Java
Мы можем запустить сервер Apache Kafka в системах, поддерживающих Java. Поэтому убедитесь, что в вашей системе Ubuntu установлена Java.
Используйте следующие команды для установки OpenJDK в вашей системе Ubuntu из официальных репозиториев:
sudo apt update
sudo apt install default-jdk
Проверьте текущую активную версию Java:
java --version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
Загрузите последнюю версию Apache Kafka
Вы можете загрузить последние бинарные файлы Apache Kafka с официальной страницы загрузки. В качестве альтернативы вы можете загрузить Kafka 3.2.0 с помощью следующей команды.
wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
Затем распакуйте загруженный файл архива и поместите его в каталог /usr/local/kafka:
tar xzf kafka_2.13-3.2.0.tgz
sudo mv kafka_2.13-3.2.0 /usr/local/kafka
Создание сценариев запуска Systemd
Теперь создайте юнит-файлы systemd для служб Zookeeper и Kafka. Это поможет вам легко запускать/останавливать службу Kafka.
Сначала создайте файл системного модуля для Zookeeper:
sudo nano /etc/systemd/system/zookeeper.service
И добавьте следующий контент:
[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Сохраните файл и закройте его.
Затем создайте файл системного диска для службы Kafka:
sudo nano /etc/systemd/system/kafka.service
Добавьте содержимое ниже. Убедитесь, что вы указали правильный путь JAVA_HOME в соответствии с Java, установленной в вашей системе:
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
Сохраните файл и закройте.
Перезагрузите демон systemd, чтобы применить новые изменения:
sudo systemctl daemon-reload
Это перезагрузит все файлы systemd в системной среде.
Запустите службы Zookeeper и Kafka.
Давайте запустим обе службы по очереди. Сначала вам нужно запустить службу ZooKeeper, а затем запустить Kafka. Используйте команду systemctl для запуска экземпляра ZooKeeper с одним узлом.
sudo systemctl start zookeeper
sudo systemctl start kafka
Проверьте статусы обоих сервисов:
sudo systemctl status zookeeper
sudo systemctl status kafka
Это все. Вы успешно установили сервер Apache Kafka в системе Ubuntu 22.04. Далее мы создадим темы на сервере Kafka.
Создайте тему в Кафке
Kafka предоставляет несколько предопределенных сценариев оболочки для работы. Сначала создайте тему с именем «testTopic» с одним разделом и одной репликой:
cd /usr/local/kafka
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testTopic
Created topic testTopic.
Здесь:
- Используйте параметр
--create
для создания новой темы - Опция
--replication-factor
описывает, сколько копий данных будет создано. Поскольку мы работаем с одним экземпляром, оставьте это значение равным 1. - Установите параметры
--partitions
как количество брокеров, между которыми вы хотите разделить ваши данные. Поскольку мы работаем с одним брокером, оставьте это значение равным 1. - Опция
--topic
определяет имя аргумента
Вы можете создать несколько аргументов, выполнив ту же команду выше. Затем вы можете увидеть аргументы, созданные в Kafka, выполнив следующую команду:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Кроме того, вместо того, чтобы создавать темы вручную, вы также можете настроить своих брокеров на автоматическое создание тем при публикации несуществующей темы.
Отправка и получение сообщений в Kafka
«Производитель» — это процесс, ответственный за ввод данных в нашу Кафку. Kafka поставляется с клиентом командной строки, который будет принимать данные из файла или стандартного ввода и отправлять их в виде сообщений в кластер Kafka. По умолчанию Kafka отправляет каждую строку как отдельное сообщение.
Мы запускаем производителя, а затем вводим в консоль несколько сообщений для отправки на сервер:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic
>Welcome to kafka
>This is my first topic
>
Вы можете выйти из этой команды или оставить этот терминал работающим для дальнейшего тестирования. Теперь откройте новый терминал для потребительского процесса Kafka на следующем шаге.
У Kafka также есть потребитель командной строки для чтения данных из кластера Kafka и отображения сообщений в стандартном выводе.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning
Welcome to kafka
This is my first topic
Теперь, если вы все еще используете производителя Kafka в другом терминале. Просто введите текст на терминале этого производителя. будет немедленно виден на терминале потребителя. Посмотрите на скриншот ниже, на котором производитель и потребитель Кафка работает:
Вывод
Это руководство помогло вам установить и настроить сервер Apache Kafka в системе Linux Ubuntu 22.04. Кроме того, вы узнали, как создать новую тему на сервере Kafka и запустить пример процесса производства и потребления с помощью Apache Kafka.