Как установить Apache Kafka на CentOS 8

Как установить Apache Kafka на CentOS 8

 

В этом руководстве мы покажем вам, как установить Apache Kafka на CentOS 8. Для тех из вас, кто не знал, pache Kafka — это агент распределенных сообщений, предназначенный для эффективной работы с огромными объемами информации в реальном времени. В отличие от традиционных агентов, таких как ActiveMQ и RabbitMQ, Kafka функционирует как связка из одного или нескольких серверов, что делает его хорошо масштабируемым, а из-за распределенного характера он обладает встроенной отказоустойчивостью, обеспечивая при этом большую пропускную способность по сравнению с его аналогами.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить sudo к командам для получения привилегий root. Я покажу вам пошаговую установку Apache Kafka на сервере CentOS 8.

Установите Apache Kafka на CentOS 8

Шаг 1. Сначала давайте начнем с проверки актуальности вашей системы.

sudo dnf update

Шаг 2. Установка Java.

Apache Kafka требует, чтобы на вашем сервере была установлена ​​Java. Вы можете установить OpenJDK на свой компьютер, выполнив следующую команду:

sudo dnf install java-11-openjdk

Проверьте версию Java, выполнив следующую команду:

java -version

Шаг 3. Установка Apache Kafka на CentOS 8.

Сначала загрузите и извлеките Kafka с веб-сайта Apache. Вы можете использовать wget для загрузки Kafka:

wget http://www-us.apache.org/dist/kafka/2.4.0/kafka_2.13-2.4.0.tgz

Затем распакуйте архивный файл:

tar xzf kafka_2.13-2.4.0.tgz
mv kafka_2.13-2.4.0 /usr/local/kafka

Шаг 4. Настройте файлы модулей Kafka Systemd.

Сначала создайте файл модуля systemd для Zookeeper с помощью следующей команды:

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 systemd, используйте следующую команду:

nano /etc/systemd/system/kafka.service

Добавьте приведенный ниже контент:

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk"
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, чтобы изменения вступили в силу:

systemctl daemon-reload

Шаг 5. Запустите сервер Kafka.

Kafka требуется ZooKeeper, поэтому сначала запустите сервер ZooKeeper в вашей системе:

sudo systemctl start zookeeper

Затем запустите сервер Kafka и просмотрите текущий статус:

sudo systemctl start kafka
sudo systemctl status kafka

Шаг 6. Создание тем в Apache Kafka.

«Производитель» — это процесс, отвечающий за размещение данных в нашей Kafka. Kafka поставляется с клиентом командной строки, который будет принимать входные данные из файла или стандартного ввода и отправлять их в виде сообщений в кластер Kafka:

cd /usr/local/kafka
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic

Created topic NewTopic.

Вы можете создать несколько тем, выполнив ту же команду, что и выше. После этого вы можете увидеть созданные темы в Kafka, выполнив следующую команду:

bin/kafka-topics.sh --list --zookeeper localhost:2181

NewTopic
KafkaonCentOS8
KafkaonCentOS8

Шаг 7. Производитель и потребитель Apache Kafka.

Давайте запустим производителя, а затем введем в консоль несколько сообщений для отправки на сервер:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic NewTopic

>Welcome to kafka
>This is my new topic
>

У Kafka также есть потребитель командной строки для чтения данных из кластера Kafka и вывода сообщений на стандартный вывод:

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic NewTopic --from-beginning

Welcome to kafka
This is my new topic
Поздравления! Вы успешно установили Apache Kafka . Благодарим за использование этого руководства для установки Apache Kafka в системе CentOS 8. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Apache Kafka .