Anasayfa / Teknik / Ubuntu Kafka Kurulumu

Ubuntu Kafka Kurulumu

Apache Kafka, büyük miktarlarda gerçek zamanlı veriyi verimli bir şekilde ele almak için tasarlanmış popüler bir dağıtık mesaj sistemidir. Bir Kafka kümesi(cluster), sadece yüksek derecede ölçeklenebilir ve hataya dayanıklı olmakla kalmaz, aynı zamanda ActiveMQ ve RabbitMQ gibi diğer mesaj platformlarına kıyasla çok daha yüksek bir performansa sahiptir. Genel olarak yayınla (publish) / abone ol(subscribe) mesajlaşma sistemi olarak kullanılmasına rağmen, log toplamak için de kullanır, çünkü yayınlanan iletiler için belirli bir süre depolama imkanı sağlar.

Bir yayınla / abone ol mesajlaşma sistemi, bir veya daha fazla üreticinin, tüketici sayısını veya mesajları nasıl işleyeceğini düşünmeden mesaj yayınlamasına izin verir. Abone olan müşterilere güncellemeler ve yeni mesajların yaratılması hakkında otomatik olarak bilgi verilir. Bu sistem, müşterilerin yeni mesajların olup olmadığını belirlemek için periyodik olarak anket yaptıkları sistemlerden daha verimli ve ölçeklenebilirdir.

Bu yazıda, Apunt Kafka 1.1.0 ‘ı Ubuntu 18.04’ te kuracak ve kullanacaksınız.

Ön gereksinimler:

Bir Ubuntu 18.04 sunucusu, sunucuda en az 4 GB RAM ve Java8 kurulu olmalıdır.

1. Zookeeper Kurulumu:

Bir çok Apache projesi gibi Kafka da çalışmak için Zookeeper’ın varlığına ihtiyaç duyuyor.

1.1. Zookeeper Kullanıcısı Yaratma

sudo useradd zookeeper -m

-m parametresi kullanıcı oluşturulurken home dizin de oluşmasını sağlar: /home/zookeeper

zookeeper kullanıcısı için şifre oluşturma:

sudo passwd zookeeper

zookeeper kullanıcısını adduser komutuyla sudo grubuna ekleyin, böylece Zookeeper’ın bağımlılıklarını yüklemek için gereken ayrıcalıklara sahip olur:

sudo adduser zookeeper sudo

zookeeper kullanıcınız şimdi hazır. su kullanarak bu hesaba giriş yapın:

su -l zookeeper

Daha sonra kendimizi sudo yapalım:

$ sudo su
root@ubuntu-server:/home/zookeeper#

1.2. Zookeeper’ı İndirme

Zookeeper kaynak dosyasını indirelim:

root@ubuntu-server:/home/zookeeper# wget "http://ftp.itu.edu.tr/Mirror/Apache/zookeeper/stable/zookeeper-3.4.13.tar.gz"

İndirdiğimiz dosyaları tar ile açalım:

root@ubuntu-server:/home/zookeeper# tar -xzf zookeeper-3.4.13.tar.gz

Açtığımız dosyaların diznine zookeeper adıyla soft link verelim:

root@ubuntu-server:/home/zookeeper# ls -l
total 36328
lrwxrwxrwx 1 zookeeper zookeeper 16 Mar 9 06:46 zookeeper -> zookeeper-3.4.13
drwxr-xr-x 10 zookeeper zookeeper 4096 Jun 30 2018 zookeeper-3.4.13
-rw-rw-r-- 1 zookeeper zookeeper 37191810 Mar 4 12:28 zookeeper-3.4.13.tar.gz

1.3. Zookeeper Konfigürasyon

zookeeper dizini içine girelim ve conf içindeki “zoo_sample.cfg” dosyasının adını “zoo.cfg” olarak değiştirelim:

root@ubuntu-server:/home/zookeeper# cd zookeeper/conf
root@ubuntu-server:/home/zookeeper/zookeeper/conf# mv zoo_sample.cfg zoo.cfg
root@ubuntu-server:/home/zookeeper/zookeeper/conf# ls -l
total 12
-rw-r--r-- 1 zookeeper zookeeper 535 Jun 29 2018 configuration.xsl
-rw-r--r-- 1 zookeeper zookeeper 2161 Jun 29 2018 log4j.properties
-rw-r--r-- 1 zookeeper zookeeper 922 Jun 29 2018 zoo.cfg

ZOOKEEPER_HOME adresini /etc/environment dosyasına ekleyelim:

root@ubuntu-server:/home/zookeeper/zookeeper/conf# sudo nano /etc/environment

Bu dosyanın PATH=”….” satırının en sonun “‘den önce :/home/zookeeper/zookeeper/bin ekleyelim ayrıca en alt satırına ZOOKEEPER_HOME="/home/zookeeper/zookeeper" ekleyelim. Ctrl+O, enter, Ctrl+X ile kaydedip çıkalım.

Eklemenin geçerli olması için :

root@ubuntu-server:/home/zookeeper/zookeeper/conf# source environment

komutunu verelim. Daha sonra ZOOKEEPER_HOME’u test edelim:

root@ubuntu-server:/home/zookeeper/zookeeper/conf# echo $ZOOKEEPER_HOME
/home/zookeeper/zookeeper

1.4. Zookeeper’ı Başlatma

Zookeeper’ı başlatalım:

root@ubuntu-server:/home/zookeeper# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

Yukarıdaki bilgi çıktısını gördüyseniz Zookeper kurulumunu başarıyla tamamladınız ve çalıştırdınız demektir.

Son olarak çalışıyor olduğunu kontrol ederim.

root@ubuntu-server:/home/zookeeper# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper/bin/../conf/zoo.cfg
Mode: standalone

2. Kafka Kurulumu

2.1. Kafka Kullanıcısı Yaratma

erkan@ubuntu-server:~$ sudo useradd kafka -m

-m parametresi kullanıcı oluşturulurken home dizin de oluşmasını sağlar: /home/kafka

kafka kullanıcısı için şifre oluşturma:

erkan@ubuntu-server:~$ sudo passwd kafka

Kafka kullanıcısını adduser komutuyla sudo grubuna ekleyin, böylece Kafka’nın bağımlılıklarını yüklemek için gereken ayrıcalıklara sahip olur:

erkan@ubuntu-server:~$ sudo adduser kafka sudo

Kafka kullanıcınız şimdi hazır. su kullanarak bu hesaba giriş yapın:

erkan@ubuntu-server:~$ su -l kafka

kafka kullanıcısını sudo moduna geçirelim:

$ sudo su
[sudo] password for kafka:
root@ubuntu-server:/home/kafka#

2.2. Kafka’yı İndirme

/home/kafka dizininde wget ile kafka dosyalarını indirelim:

root@ubuntu-server:/home/kafka# wget "https://www.apache.org/dyn/closer.cgi?path=/kafka/2.1.1/kafka_2.11-2.1.1.tgz"

İndirdiğimiz dosyaları tar ile açalım:

root@ubuntu-server:/home/kafka# tar -xzf kafka_2.11-2.1.1.tgz

Açılan dosyaya kafka adında soft link verelim:

root@ubuntu-server:/home/kafka# ln -s kafka_2.11-2.1.1 kafka

2.3. Kafka Konfigürasyonu

Kafka’nın varsayılan ayarları, mesajların yayınlanabileceği bir konuyu, kategoriyi, grubu veya yayın adını silmemize izin vermez. Bunu değiştirmek için, yapılandırma dosyasını (server.properties) düzenleyelim. Bu dosyayı nano veya başka bir editörle açın:

root@ubuntu-server:/home/kafka# nano kafka/config/server.properties

En alt satıra aşağıdaki konfigürasyon değişkeni ve değerini ekleyelim.

delete.topic.enable = true

Ayrıca aynı dosya içinde log.dirs değerini log.dirs=/home/kafka/kafka/kafka-logs şeklinde değiştirelim, Ctrl+O, enter, Ctrl+X ile kaydedip çıkalım.

2.4. Kafka ‘yı Çalıştırma

root@ubuntu-server:/home/kafka# kafka-server-start.sh $KAFKA_HOME/config/server.properties

komutu ile Kafka’yı çalıştıralım.

2.5. 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 terminal açarak şu komutu verin:

root@ubuntu-server:/home/kafka# kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic deneme

2.6. Kafka Topic Listeleme

Mevcut “topic” leri listelemek için:

root@ubuntu-server:/home/kafka# kafka-topics.sh --zookeeper localhost:2181 --list 
deneme

2.7. Kafka Topic Silme

Zaman zaman topic silmemiz gerekir bunun için aşağıdaki komutu kulanın. Konfigürasyon esnasında delete.topic.enable = true  ile topic silmeye izin vermiştik.

root@ubuntu-server:/home/kafka# kafka-topics.sh --zookeeper kibana.erkan:2181 --delete --topic deneme
Topic deneme is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

2.8. Konsol ile Kafka’ya Mesaj Göndermek

Kafka’ya mesaj göndermek için Kafka içinde bulunan kafka-console-producer.sh uygulamasını kullanabiliriz.
Daha öncesinde yeni bir topic daha yaratalım:

root@ubuntu-server:/home/kafka# kafka-topics.sh --zookeeper localhost:2181 --create --topic deneme2 --replication-factor 1 --partitions 1
Created topic "deneme2".

Şimdi deneme2 topic için kafka’ya mesaj gönderebiliriz:

root@ubuntu-server:/home/kafka# kafka-console-producer.sh --broker-list kibana.erkan:9092 --topic deneme2
>merhaba kafka
>selam kafka
>Bunlar ilk mesajlar
>

Başka bir terminal açıp yukarıda yazdığımız mesajları kafka-console-consumer.sh ile okuyalım:

root@ubuntu-server:/home/kafka# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic deneme2 --from-beginning
merhaba kafka
selam kafka
Bunlar ilk mesajlar

Tebrikler! Ubuntu üzeri Kafka’nız hayırlı olsun. Soru veya kurulum esnasında aldığınız hatalar olursa mutlaka alt tarafa yorum yazarak belirtiniz.

Esen kalın…

Hakkında Erkan ŞİRİN

2014'ten beri hem akademik alanda hem de sektörde pratik anlamda büyük veri ve veri bilimi ile ilgili çalışmalar yürütmektedir. Halihazırda İmpektra Bilişim A.Ş.'de büyük veri yöneticisi olarak çalışmakta olup aynı zamanda Gazi Üniversitesi Yönetim Bilişim Sistemleri doktora öğrencisidir. Büyük veri ve veri bilimi ile ilgili birçok kurum ve şirkete eğitimler vermekte ve projeler icra etmektedir. Çalışma alanları: büyük veri platformlarının kurulum ve yönetimi, büyük veri üzerinde makine öğrenmesi, olağan dışılık tespiti, sahtecilik tespiti, veri hazırlama sürecidir.

GÖZ ATMAK İSTEYEBİLİRSİNİZ

Tensorflow Lite Modeli ile Colab Üzerinden Görüntü Sınıflandırma: Derin Öğrenme Uygulaması

Bildiğiniz üzere derin ağlarda / katmanlarda öğrenme işlemine biz kabaca derin öğrenme diyoruz. Bu açıklama …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir