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
- Yêu cầu cấu hình máy cài kafka
- RAM 4GB
- 1 non-root user trên máy
-
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ómsudo
sudo adduser kafka sudo
-
Login vào account
su -l kafka
-
-
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. )
-
Chưa cài đặt thì ae thấy output như sau:
-
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
-
-
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
-
-
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ặcvi
để cấu hình thư mục log củakafka
bằng configlog.dirs
trong fileserver.properties
cd /home/kafka/download/kafka/config vi server.properties
-
-
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:
-
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:
Tới đây thì đã hoàn thành việc cài đặt: mặc đinh thì
Zookeper
chạy ở port2181
vàKafka
chạy ở port9092
-
-
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ủakafka
vào biến môi trườngvi ~/.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
-
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
-
Chạy lệnh để consume 1 message từ kafka
kafka-console-consumer.sh --topic start-events --from-beginning --bootstrap-server localhost:9092
Vậy là mình đã hoàn tất công việc cài 1 máy bao gồm kafka server
và zookeeper 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)!!!!