Linux Apache Kafka Kurulumu

Apache Kafka, data streaming söz konusu olduğunda bir standart olarak akla gelen ilk isimdir. Yüksek uyumluluk, dayanıklılık ve kullanım kolaylığı sebebiyle Linux üzerinde kullanılmasını tavsiye ediyoruz.

Apacha Kafka kurulumumuz toplam 6 adımdan oluşmaktadır.

  1. Java JDK 11'in kurulması
  2. Apache Kafka'nın https://kafka.apache.org/downloads adresinden indirilmesi
  3. Arşiv  dosyasının çıkarılması
  4. Kafka binary dosyalarına kolay erişim için $PATH ortam değişkenlerinin ayarlanması
  5. Zookeeper'ın binary dosyalarıyla başlatılması
  6. Kafka'nın binary dosyalarıyla başlatılması

1. Java JDK 11 Kurulumu

Apache Kafka'yı Linux'a yüklemek için Java 11 gereken tek ön koşuldur. Kurulum için;

  1. Amazon Corretto 11 Linux kurulum sayfasına gidin ve Debian, RPM, Alpine ve Amazon Linux için çalışan adımları izleyin. Alternatif olarak, Amazon Corretto 11 indirme sayfasından indirebilir ve Linux dağıtımınız için doğru paketi (x64, aarch64, x86, arch32, vb...) yükleyebilirsiniz.
  2. Örneğin Ubuntu'da (Debian tabanlı sistemler) aşağıdaki komutları kullanabilirsiniz.
wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add - 
sudo add-apt-repository 'deb https://apt.corretto.aws stable main'
sudo apt-get update; sudo apt-get install -y java-11-amazon-corretto-jdk

Tamamlandığında, java -version komutu ile Java versiyonunu kontrol edebilirsiniz. Aşağıdaki gibi benzer bir çıktı almalısınız:

openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment Corretto-11.0.10.9.1 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.10.9.1 (build 11.0.10+9-LTS, mixed mode)shell
ℹ️
Eğer java 11 dışında farklı bir versiyon görüyorsanız sudo alternatives --config java komutu ile sistemdeki Java versiyonunu değiştirebilirsiniz. Eğer JDK kullanıyorsanız ayrıca sudo alternatives --config javac komutunu da kullanmalısınız.

2. Apache Kafka Kurulumu

  1. Apache Kafka'nın en son sürümünü https://kafka.apache.org/downloads adresinden Binary downloads altına gidin.
  2. Binary downloads bölümünden herhangi bir versiyon linkine sağ tıklayın ve bağlantı adresini kopyalayın (en son Scala sürümünün seçilmesi tercih edilir - örnek 2.13).

3. Wget komutuyla dosyayı sunucunuza indirin

wget https://archive.apache.org/dist/kafka/3.0.0/kafka_2.13-3.0.0.tgz

4. İndirdiğiniz dosyayı istediğiniz bir dizine çıkarın, örneğin ~/kafka_2.13-3.3.1 .

tar xzf kafka_2.13-3.3.1.tgz
mv kafka_2.13-3.3.1 ~

5. Bir shell açın ve Apache Kafka'nın dizinine gidin. Bu örnekte, Kafka yüklemesinin ~/kafka_2.13-3.3.1 dizinine çıkarıldığını varsayacağız.

3. $PATH Ortam Değişkeninin Ayarlanması

Kafka binary dosyalarına kolayca erişmek için, sistem komutlarınıza aşağıdaki satırı ekleyerek PATH değişkeninizi düzenleyebilirsiniz. Örneğin, zshrc kullanıyorsanız ~/.zshrc veya Bash için ~/.bashrc dosyalarına aşağıdaki satırı ekleyiniz:

PATH="$PATH:~/kafka_2.13-3.3.1/bin"

Bu, artık kafka komutlarını prefix koymadan çalıştırabilmenizi sağlar. Shell'i yeniden yükledikten sonra (mevcut terminali kapatıp yeni bir terminal açarak veya source ~/.bashrc komutu ile), sıradaki kafka komutları herhangi bir dizinde çalışır olacaktır.

Startup dosyaları hakkında daha detaylı bilgi almak için 2dk şu yazımızı okuyup geri dönebilirsiniz:

Linux .bashrc, .bash_profile ve .profile Dosyaları Farkı
Linux .bashrc, .bash_profile ve .profile dosyaları shell startup dosyalarıdır ve başlangıçta otomatik olarak komutlarınızı çalıştırırlar.

4. Zookeeper'ı Başlatma

Apache Kafka, cluster yönetimi için Zookeeper'a bağlıdır. Bu nedenle, Kafka'yı başlatmadan önce Zookeeper başlatılmalıdır. Apache Kafka ile birlikte geldiği için Zookeeper'ı ayrıca yüklemeye gerek yoktur.

Zookeeper'ı başlatmak için Apache Kafka'nın bulunduğu dizini referans alarak aşağıdaki komutu çalıştırın:

zookeeper-server-start.sh ~/kafka_2.13-3.3.1/config/zookeeper.properties
ℹ️
Zookeeper'ı arka planda daemon modunda çalıştırmak için -daemon parametresini kullanabilirsiniz.

5. Apache Kafka'yı Başlatma

Başka bir shell penceresi açın ve Apache Kafka'yı başlatmak için Apache Kafka'nın bulunduğu dizini referans alarak aşağıdaki komutu çalıştırın.

kafka-server-start.sh ~/kafka_2.13-3.3.1/config/server.properties

Her iki shell penceresini de açık tuttuğunuzdan emin olun, aksi takdirde Kafka veya Zookeeper'ı kapatırsınız.

6. [Opsiyonel] Kafka ve Zookeeper Veri Depolama Dizinini Değiştirme

Zookeeper için:

  • ~/kafka_2.13-3.3.1/config/zookeeper.properties adresindeki zookeeper.properties dosyasını düzenleyin ve dataDir=/your/path/to/data/zookeeper parametresini isteğidiğiniz bir dizin olarak ayarlayın
  • Zookeeper'ı yukarıda gösterildiği gibi zookeeper.properties dosyasını kullanarak yeniden başlatın.
  • Ayrıca zookeeper.properties dosyasının bir kopyasını bilgisayarınızda herhangi bir yerde oluşturabilir ve bunun yerine bu dosyayı düzenleyebilir ve yukarıda gösterilen Zookeeper start komutunda bu dosyaya başvurabilirsiniz.

Kafka için:

  • ~/kafka_2.13-3.3.1/config/server.properties adresindeki server.properties dosyasını düzenleyin ve log.dirs=/your/path/to/data/kafka parametresini isteğidiğiniz bir dizin olarak ayarlayın
  • Yukarıda gösterildiği gibi server.properties dosyasını kullanarak Zookeeper'ı yeniden başlatın.
  • Ayrıca server.properties dosyasının bilgisayarınızın herhangi bir yerinde bir kopyasını oluşturabilir ve bunun yerine bu dosyayı düzenleyebilir ve yukarıda gösterilen Zookeeper start komutunda bu dosyaya başvurabilirsiniz.