+7

Cài đặt, cấu hình Zookeeper và Kafka trên Ubuntu 20.04 chi tiết

Hello tất cả anh chị em, đã lâu rồi mình chưa gặp nhau, à nhầm đã lâu rồi mình mới ra bài

Chào mừng đã tới hoặc quay trở lại với Series vén màn sự thật về Apache Kafka của mình.

Vẫn như mọi khi ace ngồi xuống và làm ly trà, không thì một ly nước cho tỉnh táo thư giãn để đi vào bài viết ngày hôm nay của mình nhé.

Let's go......

Bài hôm nay mình sẽ cài cắm cấu hình Kafka với Zookeeper trên Ubuntu 20.4 bài này mình trình bày để các ae mới tiếp cận với kafka hoặc linux đều có thể hiểu được nên các ae đừng ném đá nhé!

Phụ lục bài viết hôm nay bao gồm

  1. Một vài thông tin yêu cầu
  2. Tạo user
  3. Cài Java JDK (khuyến nghị từ Java 11 trở lên)
  4. Tải Apache Kafka tại https://kafka.apache.org/downloads.
  5. Cấu hình một vài thông tin cơ bản.
  6. Cấu hình systemd cho Zookeeper
  7. Cấu hình systemd cho Kafka.
  8. Testing

Link Youtube full HD ko che ở đây ae nhé 👉️👉️👉️ Link

1. Yêu cầu cấu hình máy cài kafka

  • RAM 4GB
  • 1 non-root user trên máy

2. Tạo user Kafka

  • Chạy lệnh

        sudo adduser kafka 
    
  • sau đó nhập mật khẩu và thông tin của user kafka

  • Thêm user kafka vừa tạo vào nhóm sudo

          sudo adduser kafka sudo
    
  • Login vào account

         su -l kafka  
    

3. Cài đặt Java JDK trên ubunto 20.04

  • Kiểm tra thông tin phiên bản Java JDK

       java -version
    
  • (nếu ae đã cài java thì màn hình có thể hiển thị thông tin như sau tùy theo phiên bản và có thể bỏ qua các bước phía dưới. )
    image.png

  • Chưa cài đặt thì ae thấy output như sau:
    image.png

  • chạy lệnh sau để tiến hành cài phiên bản 11 mặc định, sau khi chạy xong ae kiểm tra lại thông tin phiên bản như ở bước 2

    sudo apt install default-jre
    

4. Tải Apache Kafka.

  • Tùy từng phiên bản khác nhau mà một số các cài đặt default của Kafka cũng khác nhau ví dụ như ACK mode Link mình download https://downloads.apache.org/kafka/3.3.2/kafka_2.12-3.3.2.tgz

  • Tạo 1 thư mục Download tại /home/kafka

         mkdir ~/download
    
  • Tải File cài đặt binaries kafka

          curl https://downloads.apache.org/kafka/3.5.1/kafka_2.13-3.5.1.tgz -o ~/download/kafka.tgz  
    
  • Tạo 1 thư mục kafka và giải nén file download

        mkdir ~/download/kafka && cd ~/download/kafka
    
  • giải nén file

           tar -xvf ~/download/kafka.tgz --strip 1
    

5. Cấu hình một số thông tin

  • Tạo 1 thư mục logs của kafka

        mkdir ~/logs
    
  • Dùng lệnh nano hoặc vi để cấu hình thư mục log của kafka bằng tham số config log.dirs trong file server.properties

  • Di chuyển tới thư mục config và chỉnh sửa

      cd /home/kafka/download/kafka/config
    
      vi server.properties
    

    image.png

6. Cài đặt Service Systemd cho Zookeeper

  • Như các bài trước ae đã có thông tin Kafka sử dụng zookeper để quản lý trạng thái cluster.

  • Tạo file systemd cho Zookeeper

       sudo vi /etc/systemd/system/zookeeper.service
    
  • Nội dung file sẽ như sau :

    [UNIT]
    
      Requires=network.target remote-fs.target 
      After=network.target remote-fs.target  
    
      [Service]  
      Type=simple  
      User=kafka 
      ExecStart=/home/kafka/download/kafka/bin/zookeeper-server-start.sh /home/kafka/download/kafka/config/zookeeper.properties  
      ExecStop=/home/kafka/download/kafka/bin/zookeeper-server-stop.sh  
      Restart=on-abnormal  
    
      [Install] 
      WantedBy=multi-user.target
    

Start Zookeeper

 systemctl start zookeeper.service

Kiểm tra kết quả + trạng thái service 😁

    systemctl status zookeeper.service

Trạng thái service sẽ như sau:

image.png

7. Cài đặt Service Systemd cho kafka

  • Tiếp theo là tạo file systemd service cho kafka, giờ mới tới nhân vật chính 😅

  • vẫn là lệnh cũ

     sudo vi /etc/systemd/system/kafka.service
    
  • Nội dung sẽ như sau:

     [Unit] 
    
     Requires=zookeeper.service 
     After=zookeeper.service 
    
    
     [Service] 
     Type=Simple 
     User=kafka 
     ExecStart=/home/kafka/download/kafka/bin/kafka-server-start.sh /home/kafka/download/kafka/config/server.properties 
     ExecStop=/home/kafka/download/kafka/bin/kafka-server-stop.sh 
    
    
     [Install] 
     WantedBy=multi-user.target   
      systemctl start kafka.service
    
  • kết quả + trạng thái service 😁

      systemctl status kafka.service
    
  • Trạng thái service sẽ như sau: image.png

Tới đây thì đã hoàn thành việc cài đặt: mặc đinh thì Zookeper chạy ở port 2181Kafka chạy ở port 9092

8. Testing

  • Trong bài viết này mình chưa dùng tới code để test sẽ dùng tạm command để testing

  • Để thuận tiện mình sẽ add bin của kafka vào biến môi trường

     vi ~/.bashrc
    

    thêm thông tin biến vào cuối file

     # add path varible 
    export PATH=$PATH:/home/kafka/download/kafka/bin
    
  • Chạy lệnh để reload lại file cấu hình

       source ~/.bashrc   
    
  • Chạy lệnh tạo topic

    kafka-topics.sh --create --topic start-events --bootstrap-server localhost:9092
    

image.png

  • Chạy lệnh để có thể bắn 1 event message lên kafka

        kafka-console-producer.sh --topic start-events --bootstrap-server localhost:9092   
    

image.png

  • Chạy lệnh để consume 1 message từ kafka

       kafka-console-consumer.sh --topic start-events --from-beginning --bootstrap-server localhost:9092 
    

image.png

Vậy là mình đã hoàn tất công việc cài 1 máy bao gồm kafka serverzookeeper server Mình xin phép kết thúc bài này tại đây

Xin cảm ơn mọi người đã đọc bài viết cùng đón chờ nhiều các bài viết tiếp theo của mình nhé (Kafka là 1 công cụlàm được rất nhiều việc và hay ho)!!!!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí