top of page
  • Yazarın fotoÄŸrafıemirhanaydin

Multi Node Kafka Cluster Kurulumu Ubuntu 20.04







Hosts dosyasını kendi yapınıza göre tüm hostlarda edit‘leyin.



10.10.10.01 kafka1
10.10.10.02  kafka2
10.10.10.03 kafka3

1- Java install


sudo apt install default-jre default-jdk

Zookeeper ve Kafka servisleri için kullanıcı tanımlayalım


sudo useradd -m kafka -s /usr/sbin/nologin 
sudo useradd -m zookeeper -s /usr/sbin/nologin


2- Zookeeper kurulum ve yapılandırılması Tüm node‘ler aynı adımlar




cd /opt/

sudo wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

sudo tar xzf apache-zookeeper-3.7.1-bin.tar.gz

sudo rm apache-zookeeper-3.7.1-bin.tar.gz

sudo mv apache-zookeeper-3.7.1-bin/conf/zoo_sample.cfg apache-zookeeper-3.7.1-bin/conf/zoo.cfg
sudo nano apache-zookeeper-3.7.1-bin/conf/zoo.cfg

dataDir=/var/zookeeper
clientPort=2181
server.1=10.10.10.01:2888:3888
server.2=10.10.10.02:2888:3888
server.3=10.10.10.03:2888:3888
sudo mkdir /var/zookeeper/ -p


Herbir node‘de farklı echo satırı yapılabilir.



#kafka1 node
sudo echo '1' >> /var/zookeeper/myid

#kafka2 node
sudo echo '2' >> /var/zookeeper/myid

#kafka3 node
sudo echo '3' >> /var/zookeeper/myid

Servisin düzgün çalışıp çalışmadığını manual olarak aşağıda ki komutlarla test edebilirsiniz, biz ayrıca systemd servisi haline getireceğiz



sudo /opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh start /opt/apache-zookeeper-3.7.1-bin/conf/zoo.cfg
sudo /opt/apache-zookeeper-3.9.0-bin/bin/zkServer.sh stop /opt/apache-zookeeper-3.7.1-bin/conf/zoo.cfg

Şimdi ilgili klasörlere zookeeper kullanıcısı için sahiplik yetkisi verelim.


sudo chown -R zookeeper:zookeeper /opt/apache-zookeeper-3.7.1-bin/
sudo chown -R zookeeper:zookeeper /var/zookeeper/

Zookeeper systemd servis dosyasını create edelim



sudo vi /lib/systemd/system/zookeeper.service


[Unit]
Description=Zookeeper Daemon
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target

[Service]
Type=forking
WorkingDirectory=/opt/apache-zookeeper-3.7.1-bin
User=zookeeper
Group=zookeeper
ExecStart=/opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh start /opt/apache-zookeeper-3.7.1-bin/conf/zoo.cfg
ExecStop=/opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh stop /opt/apache-zookeeper-3.7.1-bin/conf/zoo.cfg
ExecReload=/opt/aapache-zookeeper-3.7.1-bin/bin/zkServer.sh restart /opt/apache-zookeeper-3.7.1-bin/conf/zoo.cfg
TimeoutSec=30
Restart=on-failure

[Install]
WantedBy=default.target

Service başalatalım


sudo systemctl daemon-reload
sudo systemctl start zookeeper.service
sudo systemctl enable zookeeper.service
sudo systemctl status zookeeper.service


3- Kafka kurulum ve yapılandırılması Tüm node‘ler aynı adımlar




cd /opt/  
sudo wget https://dlcdn.apache.org/kafka/3.4.1/kafka_2.13-3.4.1.tgz  
sudo tar xzf kafka_2.13-3.4.1.tgz  
sudo rm kafka_2.13-3.4.1.tgz 

Herbir node‘de farklı kafka config ayarı yapılır



sudo nano  kafka_2.13-3.4.1/config/server.properties

kafka01 node



broker.id=1
advertised.host.name=kafka1
advertised.listeners=PLAINTEXT://kafka1:9092
zookeeper.connect=10.10.10.01:2181,10.10.10.02:2181,10.10.10.03:2181
default.replication.factor=3
#delete.topic.enable = true

kafka02 node


broker.id=2
advertised.host.name=kafka2
advertised.listeners=PLAINTEXT://kafka2:9092
zookeeper.connect=10.10.10.01:2181,10.10.10.02:2181,10.10.10.03:2181
default.replication.factor=3
#delete.topic.enable = true


kafka03 node


broker.id=3
advertised.host.name=kafka3
advertised.listeners=PLAINTEXT://kafka3:9092
zookeeper.connect=10.10.10.01:2181,10.10.10.02:2181,10.10.10.03:2181
default.replication.factor=3


Servisin düzgün çalışıp çalışmadığını manual olarak aşağıda ki komutlarla test edebilirsiniz, biz ayrıca systemd servisi haline getireceğiz.



sudo /opt/kafka_2.13-3.4.1/bin/kafka-server-start.sh /opt/kafka_2.13-3.4.1/config/server.properties
sudo /opt/kafka_2.13-3.4.1/bin/kafka-server-stop.sh /opt/kafka_2.13-3.4.1/config/server.properties


Şimdi ilgili klasöre kafka kullanıcısı için sahiplik yetkisi verelim.


sudo chown -R kafka:kafka /tmp/kafka-logs/
sudo chown -R kafka:kafka /opt/kafka_2.13-3.4.1/


Kafka systemd servis dosyasını create edelim




sudo nano /lib/systemd/system/kafka.service


[Unit]
Description=Kafka Daemon
Documentation=https://kafka.apache.org
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
WorkingDirectory=/opt/kafka_2.13-3.4.1
User=kafka
Group=kafka
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
ExecStart=/opt/kafka_2.13-3.4.1/bin/kafka-server-start.sh /opt/kafka_2.13-3.4.1/config/server.properties
ExecStop=/opt/kafka_2.13-3.4.1/bin/kafka-server-stop.sh /opt/kafka_2.13-3.4.1/config/server.properties
TimeoutSec=30
Restart=on-failure

[Install]
WantedBy=default.target

sudo systemctl daemon-reload
sudo systemctl start kafka.service
sudo systemctl enable kafka.service
sudo systemctl status kafka.service


CMAK kurulum ve yapılandırılması Tek host‘ta yapılması yeterlidir



cd /opt
sudo git clone https://github.com/yahoo/CMAK.git

cd CMAK/

vi /opt/CMAK/conf/application.conf

kafka-manager.zkhosts="10.10.10.01:2181,10.10.10.02:2181,10.10.10.03:2181"
cmak.zkhosts="10.10.10.01:2181,10.10.10.02:2181,10.10.10.03:2181"


./sbt clean dist

cd /opt/CMAK/target/universal
sudo unzip cmak-3.0.0.7.zip

cd cmak-3.0.0.7/

sudo bin/cmak -Dconfig.file=/root/CMAK/conf/application.conf -Dhttp.port=9000














78 görüntüleme0 yorum

Son Yazılar

Hepsini Gör
bottom of page