
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.
8 Responses
Bir yanıt yazın Yanıtı iptal et
Yorum yapabilmek için oturum açmalısınız.
Tesekkuler 🙂 Ubuntu uzerinde de kuruluma dair bir makale olusa cok guzel olur 🙂
Elbette, kısa zamanda onu da yayınlayalım 🙂
Teşekkürler. Tam olarak aradığım şeydi.
Rica ederim Ertan Bey, faydalı olabildiysek ne mutlu bize.
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.
Merhaba. Ortam değişkenlerine ZOOKEEPER_HOME ve path’a bin’i eklememiş olabilirsiniz.
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’
Merhaba,
Kafka ve zookeeper lokalde çalıştırdım. Nasıl servise alabilirim serviste nasıl çalıştırırım bilgi verir misiniz?