Jak zainstalować Apache Kafka na Ubuntu 20.04

Apache Kafka to zdecentralizowany system obsługi komunikatów, niezwykle popularny w tworzeniu aplikacji działających w czasie rzeczywistym oraz rozbudowanych platform danych. Jego cechy, takie jak szybkość działania, skalowalność i odporność na awarie, czynią go idealnym rozwiązaniem dla różnorodnych zastosowań, w tym przetwarzania strumieniowego, integracji systemów, systemów rekomendacyjnych i wielu innych.

W tym artykule przeprowadzimy Cię przez cały proces instalacji i konfiguracji Apache Kafka na systemie Ubuntu 20.04. Dowiesz się, jak skonfigurować klaster Kafka wraz z ZooKeeper, niezbędnym do prawidłowego funkcjonowania, tak aby efektywnie zarządzać produkcją i odbiorem komunikatów.

Wprowadzenie do Świata Apache Kafka

Apache Kafka, pierwotnie stworzony przez inżynierów LinkedIn, został udostępniony jako projekt open-source w 2011 roku. Od tego czasu stał się jednym z kluczowych narzędzi do budowania systemów opartych na przesyłaniu komunikatów. Oto najważniejsze cechy, które przyczyniły się do jego popularności:

  • Wysoka przepustowość: Kafka został zaprojektowany do obsługi ogromnych ilości danych w czasie rzeczywistym, co sprawia, że doskonale nadaje się do aplikacji, gdzie szybkie przetwarzanie danych jest priorytetem.
  • Elastyczność Skalowania: System Kafka bez problemu skaluje się zarówno w poziomie, jak i w pionie, umożliwiając obsługę wzrastającej ilości danych i liczby użytkowników.
  • Niezawodność: Kafka cechuje się wysoką odpornością na awarie, radząc sobie bez problemu z niedostępnością poszczególnych serwerów.
  • Trwałość Danych: Kafka zapewnia bezpieczeństwo danych dzięki mechanizmom replikacji i przechowywania ich w partycjach.
  • Wszechstronność: Dostępny w wielu językach programowania, Kafka umożliwia łatwą integrację z różnymi systemami.

Wymagania wstępne

Aby sprawnie zainstalować i skonfigurować Apache Kafka na Ubuntu 20.04, upewnij się, że masz:

  • System Ubuntu 20.04: Zainstalowany system operacyjny Ubuntu 20.04.
  • Dostęp do Linii Poleceń: Możliwość zalogowania się do systemu poprzez SSH lub terminal konsoli.
  • Uprawnienia Administratora: Konto z uprawnieniami administratora (sudo), niezbędne do instalacji oprogramowania.

Instalacja Java JDK

Kafka wymaga zainstalowanego Java Development Kit (JDK) do prawidłowego działania. Zainstaluj najnowszą wersję OpenJDK, korzystając z poniższych poleceń:


sudo apt update
sudo apt install openjdk-11-jdk

Sprawdź, czy instalacja JDK przebiegła pomyślnie, wykonując polecenie:


java -version

Instalacja ZooKeeper

ZooKeeper, jako narzędzie do koordynacji rozproszonej, jest niezbędny do prawidłowego zarządzania klastrem Kafka. Zainstaluj go, używając poniższych poleceń:


sudo apt update
sudo apt install zookeeperd

Po zakończeniu instalacji, skonfiguruj plik konfiguracji ZooKeeper, otwierając /etc/zookeeper/conf/zoo.cfg i wprowadzając następujące zmiany:


dataDir=/var/lib/zookeeper
clientPort=2181

Uruchom ZooKeeper za pomocą polecenia:


sudo systemctl start zookeeper

Aby upewnić się, że ZooKeeper działa prawidłowo, wykonaj:


sudo systemctl status zookeeper

Instalacja Apache Kafka

Przejdźmy teraz do instalacji Apache Kafka. Wykonaj następujące polecenia:


wget -O kafka_2.13-3.3.1.tgz https://downloads.apache.org/kafka/3.3.1/kafka_2.13-3.3.1.tgz
tar -xzf kafka_2.13-3.3.1.tgz
sudo mv kafka_2.13-3.3.1 /opt/kafka

Następnie dodaj ścieżkę do katalogu Kafka do zmiennej środowiskowej PATH:


echo 'export PATH=$PATH:/opt/kafka/bin' >> ~/.bashrc
source ~/.bashrc

Konfiguracja Apache Kafka

W katalogu config, znajdującym się w lokalizacji Kafka, zlokalizuj plik server.properties. Otwórz go i wprowadź następujące zmiany:


zookeeper.connect=localhost:2181
broker.id=1
listeners=PLAINTEXT://:9092

Pamiętaj, aby zmienić broker.id na unikatową wartość dla każdego brokera w klastrze.

Uruchomienie Kafka

Po konfiguracji, uruchom serwer Kafka za pomocą polecenia:


/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

Testowanie instalacji

Aby upewnić się, że Kafka działa poprawnie, przetestuj instalację, tworząc temat i publikując do niego komunikat.

Utwórz nowy temat:


/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic my-topic

Wyślij wiadomość do utworzonego tematu:


/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my-topic

Odbierz wiadomość z tematu:


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

Konfiguracja Kafka jako Usługi Systemowej

Aby Kafka uruchamiał się automatycznie przy starcie systemu, utwórz plik jednostki systemowej. Utwórz plik /etc/systemd/system/kafka.service i wklej w niego poniższą treść:


[Unit]
Description=Apache Kafka
After=zookeeper.service

[Service]
User=kafka
Group=kafka
WorkingDirectory=/opt/kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

[Install]
WantedBy=multi-user.target

Pamiętaj o zmianie wartości User i Group na odpowiednie wartości, które odpowiadają użytkownikowi, który będzie uruchamiał serwer Kafka.

Zainstaluj i aktywuj usługę systemową Kafka, wykonując polecenia:


sudo systemctl enable kafka
sudo systemctl start kafka

Podsumowanie

Proces instalacji i konfiguracji Apache Kafka na Ubuntu 20.04 nie jest skomplikowany. W tym artykule dowiedziałeś się, jak:

  • Zainstalować Java JDK, ZooKeeper i Apache Kafka.
  • Skonfigurować plik server.properties Kafka, dostosowując go do swoich potrzeb.
  • Uruchomić i przetestować działanie instalacji Kafka.
  • Zdefiniować Kafka jako usługę systemową, aby automatycznie uruchamiał się po restarcie systemu.

Teraz, gdy masz skonfigurowany Kafka, możesz zacząć budować własne aplikacje czasu rzeczywistego i platformy danych, korzystając z jego ogromnych możliwości i elastyczności.

FAQ – Najczęściej Zadawane Pytania

  1. Czym jest Apache Kafka? Apache Kafka to rozproszony system obsługi komunikatów, który jest powszechnie używany do tworzenia aplikacji działających w czasie rzeczywistym oraz platform danych.
  2. Jakiego JDK potrzebuję dla Kafka? Kafka wymaga Java Development Kit (JDK) w wersji 11 lub nowszej.
  3. Do czego służy ZooKeeper? ZooKeeper to narzędzie do koordynacji rozproszonej, które jest wykorzystywane przez Kafka do zarządzania klastrem.
  4. Jak mogę uruchomić więcej niż jednego brokera Kafka? Aby stworzyć klaster z wieloma brokerami Kafka, powtórz proces instalacji i konfiguracji dla każdego brokera, pamiętając o ustawieniu unikalnego broker.id oraz listeners w pliku server.properties.
  5. Jak usunąć temat Kafka? Możesz usunąć temat Kafka za pomocą komendy kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic my-topic.
  6. Jak sprawdzić listę aktywnych tematów Kafka? Użyj komendy kafka-topics.sh --list --bootstrap-server localhost:9092 aby wyświetlić listę aktywnych tematów Kafka.
  7. Jak zarządzać partycjami tematu Kafka? Możesz zarządzać partycjami za pomocą poleceń kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic my-topic --partitions 3 (zmiana liczby partycji) oraz kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic my-topic --replication-factor 2 (zmiana współczynnika replikacji).
  8. Jak skonfigurować replikację w Kafka? Replikację konfiguruje się w pliku server.properties za pomocą opcji replication.factor, która określa liczbę kopii każdej partycji tematu.
  9. Jak monitorować wydajność Kafka? Dostępnych jest wiele narzędzi do monitorowania wydajności Kafka, takich jak JMX, Kafka Connect oraz narzędzia wizualizacyjne jak Grafana.
  10. Gdzie szukać dodatkowych informacji o Apache Kafka? Oficjalna strona Apache Kafka: https://kafka.apache.org/.

Słowa kluczowe: Apache Kafka, Ubuntu 20.04, instalacja, konfiguracja, ZooKeeper, system przesyłania wiadomości, streaming danych, przetwarzanie strumieniowe.


newsblog.pl