Tę wersję ćwiczeń można przejść, posiadając nowy obraz Dockerowy i uruchomiony Docker Desktop na własnym komputerze. Jak również na środowisku SGH.
1️⃣ Uruchomienie środowiska
Przejdź do przeglądarki i otwórz stronę ze środowiskiem (w przypadku Dockera otwórz localhost:8888
).
Uruchom Jupyter Lab, a następnie otwórz nowy terminal (za pomocą ikony terminala).
2️⃣ Sprawdzenie katalogów i dostępności Kafki
Przejdź do katalogu głównego i wypisz listę wszystkich elementów. Sprawdź, czy na liście znajduje się katalog kafka
.
3️⃣ Sprawdzenie listy topiców
Uruchom polecenie sprawdzające listę topiców serwera Kafki:
kafka/bin/kafka-topics.sh --list --bootstrap-server broker:9092
4️⃣ Dodanie nowego topicu
Dodaj topic o nazwie streaming
:
kafka/bin/kafka-topics.sh --bootstrap-server broker:9092 --create --topic streaming
Sprawdź ponownie listę topiców, upewniając się, że streaming
został dodany:
kafka/bin/kafka-topics.sh --list --bootstrap-server broker:9092 | grep streaming
5️⃣ Uruchomienie producenta w Pythonie
W nowym terminalu utwórz plik stream.py
i wklej poniższy kod:
%%file stream.py
import json
import random
import sys
from datetime import datetime
from time import sleep
from kafka import KafkaProducer
SERVER = "broker:9092"
TOPIC = "streaming"
if __name__ == "__main__":
producer = KafkaProducer(
bootstrap_servers=[SERVER],
value_serializer=lambda x: json.dumps(x).encode("utf-8")
)
try:
while True:
message = {
"time": str(datetime.now()),
"id": random.choice(['a','b','c','d']),
"value": random.randint(0,100)
}
producer.send(TOPIC, value=message)
sleep(1)
except KeyboardInterrupt:
producer.close()
6️⃣ Uruchomienie konsumenta w konsoli
Aby sprawdzić, czy wysyłanie wiadomości działa, otwórz kolejne okno terminala i uruchom konsumenta:
kafka/bin/kafka-console-consumer.sh --bootstrap-server broker:9092 --topic streaming --from-beginning
Teraz wszystkie wiadomości wysłane przez producenta powinny pojawić się w konsoli konsumenta.
7️⃣ Zakończenie pracy
Pamiętaj, aby uruchamiać komendy z odpowiedniego katalogu. Po zakończeniu ćwiczeń użyj Ctrl+C
, aby zatrzymać zarówno producenta, jak i konsumenta.