Apache Kafka — это мощная платформа распределенной потоковой передачи событий с открытым исходным кодом, широко используемая для создания конвейеров данных в реальном времени и потоковых приложений. Она разработана для работы с высокой пропускной способностью и отказоустойчивостью, что делает ее незаменимым инструментом для современных архитектур данных. В этом руководстве вы узнаете, как установить Apache Kafka на Fedora 41 и обеспечить надежную настройку для ваших приложений, управляемых событиями.
Предварительные условия
Прежде чем приступить к процессу установки, убедитесь, что ваша система соответствует следующим предварительным требованиям:
- Операционная система: Установлена и обновлена Fedora 41.
- Требования к аппаратному обеспечению: Минимальные требования включают многоядерный процессор, не менее 4 ГБ оперативной памяти и достаточный объем памяти (рекомендуется 10 ГБ).
- Пользовательские права: Доступ не рутового пользователя с привилегиями sudo.
- Доступ в Интернет: Необходим для загрузки необходимых пакетов.
- Эмулятор терминала: Установлен для работы с командной строкой.
Шаг 1: Обновление системы Fedora
Обновление системы очень важно для обеспечения безопасности и совместимости. Начните с обновления системы Fedora, чтобы убедиться, что все пакеты актуальны. Откройте терминал и выполните следующие команды:
sudo dnf clean all
sudo dnf update
Этот процесс обновит кэш менеджера пакетов и установит все доступные обновления.
Шаг 2: Установите среду выполнения Java (JRE)
Apache Kafka построен на Java, поэтому перед началом работы вам необходимо установить среду выполнения Java (JRE). Рекомендуемая версия — OpenJDK 17. Чтобы установить ее, выполните следующую команду в терминале:
sudo dnf install java-17-openjdk.x86_64
После установки убедитесь, что Java установлена правильно, проверив ее версию:
java --version
Вы должны увидеть сообщение о том, что OpenJDK 17 установлен. Если вам необходимо установить альтернативную версию Java, убедитесь в совместимости с Kafka, обратившись к официальной документации.
Шаг 3: Загрузите Apache Kafka
Следующим шагом будет загрузка последней версии Apache Kafka. Посетите официальную страницу загрузки Apache Kafka, чтобы найти последнюю версию. Кроме того, вы можете использовать `wget` для загрузки непосредственно из терминала. Замените `<VERSION>` и `<SCALA_VERSION>` на соответствующие значения:
wget https://downloads.apache.org/kafka/<VERSION>/kafka_<SCALA_VERSION>-<VERSION>.tgz
После загрузки проверьте целостность файла с помощью контрольной суммы SHA512, чтобы убедиться, что он не был подделан. Значения контрольных сумм можно найти на странице загрузки.
Шаг 4: Извлечение и перемещение файлов Kafka
После загрузки Kafka распакуйте tarball с помощью следующей команды:
tar -xzf kafka_<SCALA_VERSION>-<VERSION>.tgz
Это создаст новую директорию, содержащую все файлы Kafka. Для лучшей организации переместите этот каталог в `/opt`:
sudo mv kafka_<SCALA_VERSION>-<VERSION> /opt/kafka
Вам также следует изменить право собственности на этот каталог для вашего текущего пользователя, чтобы облегчить доступ к нему:
sudo chown -R $USER:$USER /opt/kafka
Шаг 5: Настройка переменных окружения
Настройка переменных окружения облегчает запуск команд Kafka из любой терминальной сессии. Для этого отредактируйте файл `/etc/environment` следующим образом:
sudo nano /etc/environment
Добавьте эти строки в конец файла:
KAFKA_HOME=/opt/kafka
PATH=$PATH:$KAFKA_HOME/bin
Эта конфигурация позволяет обращаться к командам Kafka без указания их полных путей. После сохранения изменений перезагрузите переменные окружения с помощью:
source /etc/environment
Вы можете убедиться в правильности конфигурации, проверив, правильно ли задан `$KAFKA_HOME`:
echo $KAFKA_HOME
Шаг 6: Настройка Zookeeper
Zookeeper выступает в качестве службы координации для управления распределенными приложениями, такими как Kafka. Перед запуском Kafka необходимо сначала запустить Zookeeper. Используйте эту команду для запуска сервера Zookeeper:
$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
Эта команда запустит Zookeeper, используя его конфигурационный файл по умолчанию. Вы должны увидеть журналы, указывающие на то, что Zookeeper работает правильно.
Шаг 7: Настройка и запуск сервера Kafka
Редактирование свойств сервера
Следующий шаг включает в себя настройку свойств сервера Kafka. Откройте файл `server.properties` для редактирования:
nano /opt/kafka/config/server.properties
Вам нужно будет изменить несколько ключевых конфигураций в этом файле:
ID брокеров:
broker.id=0
Директории журналов:
log.dirs=/tmp/kafka-logs
Строка подключения Zookeeper:
zookeeper.connect=localhost:2181
Эта конфигурация устанавливает один экземпляр брокера с указанным каталогом журналов, в котором будут храниться сообщения.
Запуск сервера Kafka
Теперь вы можете запустить сервер Kafka в автономном режиме с помощью этой команды:
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties &
Амперсанд (`&`) в конце запускает его в фоновом режиме, чтобы вы могли продолжить работу с терминалом.
Проверка установки
Чтобы убедиться, что Kafka работает правильно, вы можете проверить активные процессы или просмотреть файлы журналов, расположенные в `/tmp/kafka-logs`. Если все настроено правильно, вы должны увидеть записи, указывающие на успешный запуск Kafka.
Шаг 8: Создание служебных файлов Systemd
Если вы хотите, чтобы Kafka и Zookeeper запускались автоматически при загрузке, лучше всего создать служебные файлы systemd для обеих служб.
Конфигурация службы Zookeeper
Создайте новый файл службы systemd для Zookeeper:
sudo nano /etc/systemd/system/zookeeper.service
Добавьте следующее содержание:
[Unit]
Description=Apache Zookeeper Server
[Service]
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
[Install]
WantedBy=multi-user.target
Конфигурация службы Kakfa
Создайте новый файл службы systemd для Kafka:
sudo nano /etc/systemd/system/kafka.service
Добавить этот контент:
[Unit]
Description=Apache Kafka Server
[Service]
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
[Install]
WantedBy=multi-user.target
Перезагрузите демон systemd и включите обе службы при запуске:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper.service kafka.service
Шаг 9: Проверка установки Apache Kafka
Создайте тему
Следующим шагом будет создание тестовой темы с именем `test-topic`. Эта тема будет использоваться для отправки и получения сообщений. Используйте эту команду для ее создания:
$KAFKA_HOME/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test-topic
Производство сообщений
Теперь вы можете начать создавать сообщения для вашей темы, используя консольный инструмент производителя, предоставляемый Kafka. Выполните эту команду в другом окне терминала:
$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic
Вы можете вводить сообщения непосредственно в этой консоли; для отправки сообщения нажмите Enter после каждого сообщения.
Потребление сообщений
Последним шагом в тестировании вашей установки является потребление сообщений из `test-topic`. Откройте другое окно терминала и выполните эту команду:
$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning
Эта команда отобразит все сообщения, отправленные на `test-topic`, что позволит вам убедиться, что все работает правильно.
Поздравляем! Вы успешно установили Apache Kafka. Для получения дополнительной или полезной информации мы рекомендуем вам посетить официальный сайт Apache.