Встановлюємо Apache Kafka на Ubuntu 24.04 за 5 кроків

Apache Kafka — це розподілена система для обробки потоків даних з відкритим кодом.
Вона допомагає швидко й стабільно перекидати дані з точки А в точку Б — ідеально для соцмереж, онлайн-банкінгу, аналітики та будь-яких масштабних систем.
І якщо ти юзаєш Ubuntu 24.04, тоді нумо читати гайд зі встановлення: лише 5 кроків і ти в темі.
Крок 1: онови свою ОС
Для початку онови всі пакунки до актуальних версій:
apt update && apt upgrade
Це мінімум, щоб уникнути конфліктів під час встановлення Java та Kafka.
Крок 2: встанови Java (OpenJDK)
Kafka потребує Java для роботи, тому спочатку потрібно встановити OpenJDK.
Ubuntu 24.04 вже має потрібні пакунки у своїх репозиторіях, тому встановлення виглядатиме ось так:
apt install default-jdk
Після інсталяції перевір версію:
java -version
Повинно з’явитися щось на кшталт:
openjdk version "21.0.6" 2025-01-21
OpenJDK Runtime Environment (build 21.0.6+7-Ubuntu-124.04.1)
OpenJDK 64-Bit Server VM (build 21.0.6+7-Ubuntu-124.04.1, mixed mode, sharing)
Крок 3: завантаж Kafka
Перейди на офіційний сайт Apache Kafka, щоб перевірити актуальну версію. Станом на квітень 2025 року це 4.0.0. Завантаж її так:
wget https://downloads.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz
Розпаковуємо архів:
tar xvf kafka_2.13-4.0.0.tgz
І переносимо в системну директорію:
mv kafka_2.13-4.0.0 /usr/local/kafka
Крок 4: налаштуй systemd для Kafka
Заходимо в директорію Kafka:
cd /usr/local/kafka
Створюємо унікальний ідентифікатор кластера:
KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
Форматуємо лог-директорії:
bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties
Тепер створюємо systemd-сервіс, щоб зручно керувати Kafka:
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/java-1.21.0-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 та запусти Kafka:
systemctl daemon-reload
systemctl start kafka
systemctl enable kafka
systemctl status kafka
Очікуваний результат:
● kafka.service - Apache Kafka Server
Loaded: loaded (/etc/systemd/system/kafka.service; enabled; preset: enabled)
Active: active (running)
Docs: http://kafka.apache.org/documentation.html
Main PID: 11915 (java)
Tasks: 99 (limit: 2217)
Memory: 365.1M (peak: 365.4M)
CPU: 16.435s
CGroup: /system.slice/kafka.service
Крок 5: створи теми Kafka
Перш ніж почати писати свої перші події, потрібно створити тему. Наприклад, створимо тему з назвою my-events за допомогою такої команди:
bin/kafka-topics.sh --create --topic my-events --bootstrap-server localhost:9092
Щоб перевірити, які теми вже існують у твоїй Kafka, виконай команду:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
У твоєму випадку має вивести my-events
.
Kafka також має вбудований командний клієнт, який дозволяє передавати дані в тему — інформацію через файл або прямо через консоль. Наприклад, додавати нові події до теми можна так:
bin/kafka-console-producer.sh --topic my-events --bootstrap-server localhost:9092
Тепер при вводі будь-якого тексту кожен рядок буде записаний як окрема подія.
Щоб припинити введення подій, просто натисни Ctrl-C. І якщо потрібно очистити всі дані та журнали в Kafka, можна видалити всі файли так:
rm -rf /tmp/kafka-logs /tmp/kraft-combined-logs
Вуаля, все готово. Ти чудово впорався з чим завданням і нагорода — Apache Kafka на Ubuntu 24.04.
Додаткові корисні матеріали
Те, що не завжди трапляється в базових гайдах, але точно зекономить десятки запитів у гугл.
- Зміна стандартного порту (9092)
У конфігурації server.properties
можна змінити порт, на якому Kafka буде слухати з’єднання:
listeners=PLAINTEXT://0.0.0.0:9093
Це стане в пригоді, якщо порт 9092 вже зайнятий або ти хочеш мати кілька брокерів на одній машині.
- Перегляд директорій
Дані всіх подій (теми, партиції) Kafka зберігає у директорії, яку вказано в параметрі log.dirs
:
log.dirs=/home/kafka/logs
Можеш задати будь-яке місце — головне, щоб там вистачало місця й були права доступу.
- Перегляд логів
Якщо ти запускаєш Kafka через systemd
, лог можна глянути через:
journalctl -u kafka
Або просто переглядати файл, куди ти скеровуєш stdout
, у юніт-файлі.
- Дозвіл на видалення тем
Kafka не дозволяє видаляти теми (тільки створювати). Щоб це змінити:
delete.topic.enable=true
delete.topic.enable=true
Додаєш цей рядок у server.properties
— і можна буде видаляти теми командою kafka-topics.sh --delete
.
Післяслово
Почни з малого, експериментуй у локальному середовищі, не бійся ламати й перезапускати. Проте набагато ефективнішим є навчання через практику.
Саме це ти отримаєш на авторських курсах від ITEDU. Реєструйся на потрібний курс, щоб апгрейднути свої навички з дистрибутивами Linux, моніторингом та логуванням.