- vừa được xem lúc

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

0 0 21

Người đăng: dohv

Theo Viblo Asia

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
7. Start Zookeeper.
8. Start Kafka.
9. Testing 
  1. Yêu cầu cấu hình máy cài kafka
  • RAM 4GB
  • 1 non-root user trên máy
  1. 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 
  2. 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
      
  3. 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 ~/downloads
      
    • Tải File cài đặt binaries kafka

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

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

       tar -xvf ~/download/kafka.tgz --strip 1
      
  4. 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 config log.dirs trong file server.properties

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

    image.png

  5. Cài đặt Service Systemd cho kafka (kèm luôn cả 7 & 8 😁)

    • 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
      
    • Kết quả + trạng thái service 😁

       systemctl status zookeeper.service
      

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

      image.png

    • 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 
    • để start kafka

       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

  6. 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 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)!!!!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Kafka là gì?

Apache Kafka® là một nền tảng stream dữ liệu phân tán. . stream data: dòng dữ liệu, hãy tưởng tượng dữ liệu là nước trong 1 con suối. .

0 0 43

- vừa được xem lúc

001: Message-driven programming với Message broker và Apache Kafka

Bài viết nằm trong series Apache Kafka từ zero đến one. . . Asynchronous programming.

0 0 165

- vừa được xem lúc

002: Apache Kafka topic, partition, offset và broker

Bài viết nằm trong series Apache Kafka từ zero đến one. Nói qua về lịch sử, Kafka được phát triển bởi LinkedIn (các anh em dev chắc chẳng xa lạ gì) và viết bằng ngôn ngữ JVM, cụ thể là Java và Scala.

0 0 153

- vừa được xem lúc

003: Gửi và nhận message trong Apache Kafka

Bài viết nằm trong series Apache Kafka từ zero đến one. . . Nếu muốn các message được lưu trên cùng một partition để đảm bảo thứ tự thì làm cách nào.

0 0 224

- vừa được xem lúc

004: Apache Kafka consumer offset, Broker discovery và Zookeeper

Bài viết nằm trong series Apache Kafka từ zero đến one. 1) Consumer offset.

0 0 130

- vừa được xem lúc

Apache Kafka - Producer - Gửi message đến Kafka bằng kafka-python

Overview. Understand how to produce message and send to the Kafka topic. Architecture. .

0 0 65