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
- 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.
- Jakiego JDK potrzebuję dla Kafka? Kafka wymaga Java Development Kit (JDK) w wersji 11 lub nowszej.
- Do czego służy ZooKeeper? ZooKeeper to narzędzie do koordynacji rozproszonej, które jest wykorzystywane przez Kafka do zarządzania klastrem.
- 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
orazlisteners
w plikuserver.properties
. - Jak usunąć temat Kafka? Możesz usunąć temat Kafka za pomocą komendy
kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic my-topic
. - 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. - 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) orazkafka-topics.sh --alter --bootstrap-server localhost:9092 --topic my-topic --replication-factor 2
(zmiana współczynnika replikacji). - Jak skonfigurować replikację w Kafka? Replikację konfiguruje się w pliku
server.properties
za pomocą opcjireplication.factor
, która określa liczbę kopii każdej partycji tematu. - 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.
- 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