Windows 10 Üzerine Kafka Kurmak, Mesaj Okumak ve Yazmak

Merhaba, bu yazımızda akan veri işleme ve yönetmede oldukça popüler olan Apache Kafka’nın Windows 10 üzerine kurulumu ve temel komutlarından bahsedeceğiz.

Ön Gereksinimler

  • Java kurulu olmalı
  • Sıkıştırma programı kurulu olmalı (Örn:7-zip)

———-

1. Zookeeper Kurulumu:

Bir çok Apache projesi gibi Kafka da çalışmak için Zookeeper’ın varlığına ihtiyaç duyuyor. Zookeeper’ı buradan indirebilirsiniz. Zookeeper için C veya D diskinde zookeper adında bir klasör oluşturunuz. Burası artık Zookeeper’ın home dizinidir. Zookeeper’ı indirdiğiniz yerde aşağıdaki hale gelene kadar açınız. Açılan dosyaların hepsini az önce yarattığınız zookeeper klasörü (home dizin) içine taşıyınız.

conf içindeki “zoo_sample.cfg” dosyasının adını “zoo.cfg” olarak değiştiriniz.

home dizin içinde data isminde bir klasör daha yaratın. zoo.cfg dosyası içine girip dataDir=/tmp/zookeeper değerini :dataDir=D:\\zookeeper\\data olarak değiştirin. Aşağıdaki şeklde görüldüğü gibi ortam değişkenleri (Environment Variables) ayarlarına gidiniz.

Aşağıdaki gibi Zookeeper home dizinini ve Path’e Zookeeper uygulama dosya yollarını ekleyin. Bunu yapmamızın sebebi dizin değiştirmeden zookeeper komutlarını verebilmek.

Windows komut satırından zkserver yazarak Zookeeper’ı başlatabilirsiniz.

2. Kafka Kurulumu

Zookeeper kurulumundan sonra Kafka kurulumna geçebiliriz. Kafka’yı buradan indirebilirsiniz. Kafka için C veya D diskinde kafka adında bir klasör oluşturunuz. Burası artık Kafka’nın home dizinidir. Kafka’yı indirdiğiniz yerde aşağıdaki hale gelene kadar açınız. Açılan dosyaların hepsini az önce yarattığınız kafka klasörü (home dizin) içine taşıyınız.

Aşağıda görüldüğü şekilde Kafka için home dizini ve uygulama dosya yollarını Environmental Variables kısmına ekleyiniz.

Kafka logları için home dizin altında logs isminde bir klasör oluşturunuz. conf içindeki server.properties dosyasını açarak içinde şu değişikliği yapınız:  “log.dirs=/tmp/kafka-logs” yerine log.dirs=D:\\kafka\\logs

Varsayılan ayar olarak Apache Kafka port 9092 ve Apache Zookeeper port 2181 kullanır.

Kafka’yı Çalıştırma

Zookeeper haricinde ikinci bir komut satırına (Zookeeper çalışsın bırakın): kafka-server-start.bat %KAFKA_HOME%\config\server.properties komutunu yazıp çalıştırınız. Kafka çalışmaya başlayacaktır. Tebrikler Kafka’yı kurdunuz.

Kafka Topic Oluşturma

Kafka topic, kabaca veri tabanındaki bir tabloya; bir mesaj da tablonun satırına benzetilebilir. Örneğin deneme adında yeni bir topic oluşturmak için yeni bir komut satırı (üç etti) açarak şu komutu verin:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic deneme

Kafka Topic Listeleme

Mevcut “topic” leri listelemek için şu komutu verin:

kafka-topics.bat --list --zookeeper localhost:2181

Kafka Topic Silme

server.properties içinde en son satıra
## Costum settings
delete.topic.enable=true
ekleyin ve daha sonra aşağıdaki komut ile topic silme işini yapabilirsiniz.

kafka-topics.bat --zookeeper localhost:2181 --delete --topic deneme

Konsol ile Kafka’ya Mesaj Göndermek

Bir komut satırı daha açıp şu komutu yazınız:

kafka-console-producer.bat --broker-list localhost:9092 --topic deneme

daha sonra aşağıdaki gibi rast gele cümleler yazın

Konsol ile Kafka’dan Mesaj Okumak

Başka bir komut satırı açın ve şu komutu verin:

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic deneme --from-beginning

Aşağıdaki gibi az önce yazdığınız mesajları Kafka’dan okuyacaksınız.

Csv dosyasını Kafka’ya nasıl yazarız?

Çok basit:

kafka-console-producer.bat --broker-list localhost:9092 --topic deneme <  Advertising.csv

Kafka-console-consumer ile consume ettiğimiz mesajlara ait key’leri nasıl görebiliriz?

–property print.key=true

Bunun gibi başka özellikleri de görebiliriz örneğin timestamp, ofsett, partition numarası gibi.

Kafka-console-producer ile mesaj gönderirken key’leri nasıl belirtebiliriz?

kafka-console-producer --broker-list localhost:9092 --topic deneme --property parse.key=true --property key.separator=:
>key-3:10$
>key-5:7$
>key-3:11$
>key-6:25$
>key-6:12$
>key-5:14$
>key-5:17$

Kafka’da mevcut topic özelliklerini nasıl güncelleriz?

Kafka topic apisinde  –list, –describe, –create, –alter or –delete olmak üzere beş farklı action var. Topic özelliklerini güncellemek için –alter kullandıktan sonra her bir özellik için –config key=value yapısını kullanabiliriz.

kafka-topics --alter --zookeeper cloudera:2181 --topic iris --config "cleanup.policy=compact" --config "delete.retention.ms=100"  --config "segment.ms=100" --config "min.cleanable.dirty.ratio=0.01"

Kafka’yı Kapatma

Önce kafka konsolu üzerine gelerek Ctrl+C tuşlayınız ve Kafka’nın kapanmasını bekleyiniz. Sonra aynı işlemi Zookeeper konsolu için yapınız.

Tebrikler!!! Kafka’ya giriş yaptınız.
Giriş seviyesindeki diğer komutlar için Apache Kafka sitesini ziyaret edebilirsiniz. Esen kalın.

Yazar Hakkında
Toplam 174 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (8 yorum)
Atesh
Atesh Yanıtla
- 20:30

Tesekkuler 🙂 Ubuntu uzerinde de kuruluma dair bir makale olusa cok guzel olur 🙂

    Erkan ŞİRİN
    Erkan ŞİRİN Yanıtla
    - 15:31

    Elbette, kısa zamanda onu da yayınlayalım 🙂

ertan
ertan Yanıtla
- 16:02

Teşekkürler. Tam olarak aradığım şeydi.

    Erkan ŞİRİN
    Erkan ŞİRİN Yanıtla
    - 17:02

    Rica ederim Ertan Bey, faydalı olabildiysek ne mutlu bize.

Büşra
Büşra Yanıtla
- 13:30

Merhaba zookeeper kurulumunu gerçekleştiremedim. Belirttiğiniz her şeyi yaptım cmd ekranında

‘zkserver’ is not recognized as an internal or external command,
operable program or batch file.

yazıyor.

    Erkan ŞİRİN
    Erkan ŞİRİN Yanıtla
    - 22:46

    Merhaba. Ortam değişkenlerine ZOOKEEPER_HOME ve path’a bin’i eklememiş olabilirsiniz.

Pınar Koşan
Pınar Koşan Yanıtla
- 11:45

Kafkayı çalıştırdığımda böyle bir hata alıyorum:
Classpath is empty. Please build the project first e.g. by running ‘gradlew jarAll’

Dilara
Dilara Yanıtla
- 11:06

Merhaba,

Kafka ve zookeeper lokalde çalıştırdım. Nasıl servise alabilirim serviste nasıl çalıştırırım bilgi verir misiniz?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara