Cài đặt Apache Kafka trên Ubuntu 18.04

Apache Kafka là gì? #

Apache Kafka (Kafka) là một nền tảng phân phối dữ liệu phân tán (distributed messaging system), sử dụng mô hình publish – subscribe, bên publish dữ liệu được gọi là producer, bên subscribe nhận dữ liệu theo topic được gọi là consumer. Kafka có khả năng truyền một lượng lớn dữ liệu trong thời gian thực, trong trường hợp bên nhận chưa nhận được dữ liệu vẫn được lưu trữ, sao lưu trên một hàng đợi và cả trên ổ cứng để bảo đảm tính toàn vẹn dữ liệu. Trong bài viết này mình sẽ hướng dẫn cho các bạn cách cài đặt Apache Kafka trên Ubuntu 18.04.
cài đặt kafka trên ubuntu

Nguồn: Trang chủ kafka

Chuẩn bị môi trường #

  • Ubuntu 18.04
  • User có quyền sudo.

Cài đặt OpenJDK8 #

apt-get install -y openjdk-8-jdk

Tạo user kafka #

Chúng ta sẽ tạo 1 user với tên gọi là kafka để giảm thiểu rủi ro cho máy chủ Ubuntu khi Kafka gặp vấn đề.

useradd kafka -m

Option “-m” sẽ tạo 1 thư mục chính cho user. Thư mục /home/kafka sẽ là nơi chúng ta thực hiện các bước tiếp theo.

Cài đặt và giải nén Kafka Binaries #

Sử dụng curl để download Kafka Binaries với tên kafka.tgz và lưu trữ ở root

curl "http://mirrors.viethosting.com/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz" -o/kafka.tgz

Tạo 1 thư mục kafka và di chuyển vào thư mục này. Đây sẽ là thư mục chứa cấu hình để cài đặt kafka

mkdir -p /home/kafka/kafka && cd /home/kafka/kafka

Thực hiện giải nén file Binaries đã download

tar -xvzf /kafka.tgz --strip 1

Thay đổi owner thành user kafka cho thư mục chứa cài đặt kafka:

chown -R kafka. /home/kafka/kafka/

Cấu hình Kafka Server #

Mặc định Kafka sẽ không cho phép chúng ta xóa các topic. Để chỉnh sửa chúng ta sẽ vào file cấu hình của Kafka:

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

Thêm dòng cấu hình cho phép xóa topic vào cuối file

delete.topic.enable = true

Tạo Systemd Unit file và khởi động Kafka Server #

Chúng ta sẽ tạo Systemd unit file cho dịch vụ Kafka để có thể dễ dàng quản lý các hành động như start, stop hoặc restart. 

Zookeeper là 1 dịch vụ mà kafka sử dụng để quản lý cấu hình và trạng thái của cụm cluster. Tạo systemd unit file cho Zookeeper

vi /etc/systemd/system/zookeeper.service

Thêm các dòng sau vào file:

[Unit]

Requires=network.target remote-fs.target

After=network.target remote-fs.target

[Service]

Type=simple

User=kafka

ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties

ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh

Restart=on-abnormal

[Install]

WantedBy=multi-user.target

Tiếp theo, chúng ta sẽ tạo Systemd unit file cho Kafka:

vi /etc/systemd/system/kafka.service

Thêm các dòng sau vào file:

[Unit]

Requires=zookeeper.service

After=zookeeper.service

[Service]

Type=simple

User=kafka

ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1'

ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh

Restart=on-abnormal

[Install]

WantedBy=multi-user.target

Khởi động dịch vụ Kafka

service kafka start

Kiểm tra trạng thái của dịch vụ:

service kafka status

cài đặt kafka trên ubuntu

Bây giờ dịch vụ Kafka đã được khởi động và listen port 9092

Kiểm tra cài đặt #

Đầu tiên, kết nối đến Zookeeper trên server TEL4VN-LAB thông qua port 2181 và tạo 1 topic với tên gọi là “TEL4VN-Kafka” với số lượng partition và replica là 1.

./bin/kafka-topics.sh --create --zookeeper TEL4VN-LAB:2181 --replication-factor 1 --partitions 1 --topic TEL4VN-Kafka

cài đặt kafka trên ubuntu

Thực hiện pubish message vào topic TEL4VN-Kafka bằng câu lệnh sau:

echo "Hello, TEL4VN" | ./bin/kafka-console-producer.sh --broker-list TEL4VN-LAB:9092 --topic TEL4VN-Kafka > /dev/null

Để kiểm tra xem consumer đã nhận được message chưa ta thực hiện câu lệnh sau:

./bin/kafka-console-consumer.sh --bootstrap-server TEL4VN-LAB:9092 --topic TEL4VN-Kafka --from-beginning

cài đặt kafka trên ubuntu

Kết luận #

Như vậy trong bài viết này mình đã hướng dẫn cho các bạn cách cài đặt Apache Kafka trên Ubuntu. Trong bài viết sau mình sẽ hướng dẫn cách xây dựng cụm cluster cho Kafka để tăng tính high availability. Nếu có bất kỳ khó khăn nào trong quá trình cài đặt, bạn hãy bình luận bên dưới để mình hỗ trợ nhé.

 

Nguồn bài viết: digitalocean

Trung tâm đào tạo Viễn thông và Công nghệ thông tin TEL4VN (TEL4VN) chuyên đào tạo các khóa học về DevOps như: Docker, Kubernetes, Ansible, Jenkins, Linux…….Ngoài ra, TEL4VN còn là Trung tâm đào tạo duy nhất về VoIP mã nguồn mở.

🌐Website: https://tel4vn.edu.vn/
🔗 Fanpage: https://www.facebook.com/tel4vn

🔗 Youtube: TEL4VN

🏠Địa chỉ: 82/2/9 Đinh Bộ Lĩnh, P.26, Q.Bình Thạnh, TP.HCM
☎️SĐT: 028 3622 0868
📩 Email: tuyensinh@tel4vn.com

Powered by BetterDocs

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *