Apache Kafka là kho lưu trữ dữ liệu phân tán để xử lý dữ liệu truyền phát trong thời gian thực. nó được phát triển bởi Apache Software Foundation và được viết bằng Java và Scala. Nó được sử dụng để xây dựng các ứng dụng và đường dẫn dữ liệu truyền phát theo thời gian thực thích ứng với luồng dữ liệu, đặc biệt là đối với các ứng dụng cấp doanh nghiệp và các ứng dụng quan trọng. Đây là một trong những nền tảng luồng dữ liệu phổ biến nhất được hàng nghìn công ty sử dụng cho đường ống dữ liệu hiệu suất cao, phân tích phát trực tuyến và tích hợp dữ liệu.
Apache Kafka kết hợp nhắn tin, lưu trữ và xử lý luồng ở một nơi. Cho phép người dùng thiết lập luồng dữ liệu mạnh mẽ và hiệu suất cao để thu thập, xử lý và truyền dữ liệu theo thời gian thực. Nó được sử dụng trong các ứng dụng phân tán hiện đại với khả năng mở rộng quy mô để xử lý hàng tỷ sự kiện được truyền trực tuyến.
Trong hướng dẫn này, bạn sẽ cài đặt Apache Kafka trên máy chủ Ubuntu 22.04. Bạn sẽ tìm hiểu cách cài đặt theo cách thủ công từ các gói nhị phân, bao gồm cấu hình cơ bản để Apache chạy như một dịch vụ và thao tác cơ bản.
Điều kiện tiên quyết
Đầu tiên, để hoàn thành hướng dẫn này, bạn sẽ cần các yêu cầu sau:
- Máy chủ Ubuntu 22.04 có bộ nhớ ít nhất 2GB hoặc 4GB.
- User có quyền sudo hoặc root.
Cài đặt Java OpenJDK
Đầu tiên, Apache Kafka là một stream processing và xử lý luồng được viết bằng Scala và Java. Để cài đặt, bạn sẽ cài đặt Java OpenJDK trên hệ thống Ubuntu của mình. Tại thời điểm viết bài này, phiên bản mới nhất của nó là v3.2 yêu cầu ít nhất Java OpenJDK v11, có sẵn theo mặc định trên kho lưu trữ Ubuntu.
Để bắt đầu, hãy chạy lệnh apt bên dưới để cập nhật kho Ubuntu và làm mới chỉ mục gói.
sudo apt update
Cài đặt Java OpenJDK 11 bằng lệnh apt bên dưới. Nhập Y để xác nhận cài đặt và nhấn ENTER và quá trình cài đặt sẽ bắt đầu.
sudo apt install default-jdk
Java OpenJDK hiện đã được cài đặt trên hệ thống Ubuntu của bạn. Sử dụng lệnh java sau để kiểm tra và xác minh phiên bản java. Bạn sẽ thấy java OpenJDK v11 được cài đặt.
java version
Cài đặt Apache Kafka
Sau khi cài đặt Java OpenJDK, bạn sẽ bắt đầu cài đặt Apache Kafka theo cách thủ công bằng gói nhị phân. Tại thời điểm viết bài này, phiên bản mới nhất là v3.2. Để cài đặt nó, bạn sẽ tạo một người dùng hệ thống mới và tải xuống gói nhị phân của nó.
Chạy lệnh sau để tạo người dùng hệ thống mới có tên “kafka” . Người dùng này sẽ có thư mục chính mặc định “/opt/kafka” và vô hiệu hóa quyền truy cập shell.
sudo useradd -r -d /opt/kafka -s /usr/sbin/nologin kafka
Tải xuống gói nhị phân bằng lệnh cuộn tròn bên dưới. Bạn sẽ nhận được tệp tin “kafka_2.13-3.2.0.tgz” .
sudo curl -fsSLo kafka.tgz https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
Sau khi quá trình tải xuống hoàn tất, hãy giải nén tập tin “kafka_2.13-3.2.0.tgz” bằng lệnh tar. Sau đó, di chuyển thư mục đã giải nén sang “/opt/kafka” .
tar -xzf kafka.tgz
sudo mv kafka_2.13-3.2.0 /opt/kafka
Bây giờ thay đổi quyền sở hữu thư mục cài đặt thư mục “ /opt/kafka ” thành người dùng “ kafka “.
sudo chown -R kafka:kafka /opt/kafka
Tiếp theo, tạo chạy lệnh sau để tạo thư mục mới “ logs ” để lưu trữ tệp logs. Sau đó, chỉnh sửa tệp cấu hình “/opt/kafka/config/server.properties ” bằng trình chỉnh sửa nano.
sudo -u kafka mkdir -p /opt/kafka/logs
sudo -u kafka nano /opt/kafka/config/server.properties
Thay đổi vị trí mặc định cho Logs vào thư mục “ /opt/kafka/logs ”.
# logs configuration
log.dirs=/opt/kafka/logs
Lưu và đóng tập tin khi bạn hoàn tất.
Thiết lập Apache Kafka làm dịch vụ
Tại thời điểm này, bạn đã có cấu hình cơ bản. Bây giờ làm cách nào để chạy Apache Kafka trên hệ thống của bạn? Cách được đề xuất ở đây là chạy dưới dạng dịch vụ systemd.
Để thiết lập dịch vụ, trước tiên bạn cần thiết lập dịch vụ Zookeeper. Apache Zookeeper ở đây được sử dụng để tập trung các dịch vụ và duy trì việc lựa chọn bộ điều khiển, cấu hình chủ đề, danh sách kiểm soát truy cập (ACL) và tư cách thành viên (đối với dạng Cluster).
Zookeeper được bao gồm theo mặc định trên Apache Kafka. Bạn sẽ thiết lập file dịch vụ cho Zookeeper, sau đó tạo một file dịch vụ khác cho Kafka.
Tạo dịch vụ systemd cho zookeeper
Chạy lệnh sau để tạo tệp dịch vụ systemd mới “/etc/systemd/system/zookeeper.service” cho Zookeeper.
sudo nano /etc/systemd/system/zookeeper.service
Thêm cấu hình sau vào tập tin.
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Khi bạn hoàn tất, hãy lưu và đóng tệp.
Tạo dịch vụ systemd cho kafka
Tiếp theo, tạo một tệp dịch vụ mới “/etc/systemd/system/kafka.service” bằng lệnh bên dưới.
sudo nano /etc/systemd/system/kafka.service
Thêm cấu hình sau vào tập tin. Dịch vụ này sẽ chỉ được chạy nếu dịch vụ Zookeeper đang chạy.
[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /opt/kafka/logs/start-kafka.log 2>&1'
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Lưu và đóng tập tin khi bạn hoàn tất.
Khởi động lại và kiểm tra dịch vụ
Bây giờ hãy tải lại trình quản lý systemd bằng lệnh bên dưới. Lệnh này sẽ áp dụng các dịch vụ systemd mới mà bạn vừa tạo.
sudo systemctl daemon-reload
Bây giờ hãy bắt đầu và kích hoạt dịch vụ Zookeeper bằng lệnh bên dưới.
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
Sau đó, khởi động và kích hoạt dịch vụ bằng lệnh sau.
sudo systemctl enable kafka
sudo systemctl start kafka
Cuối cùng, hãy kiểm tra và xác minh các dịch vụ Zookeeper và Apache Kafka bằng lệnh bên dưới.
sudo systemctl status zookeeper
sudo systemctl status kafka
Trong đầu ra sau, bạn có thể thấy dịch vụ Zookeeper đã được bật và sẽ tự động chạy khi khởi động hệ thống. Và trạng thái hiện tại của dịch vụ Zookeeper đang chạy .
Dịch vụ cũng được kích hoạt và sẽ tự động chạy khi khởi động hệ thống. Và bây giờ nó đang “ Running ”.
Thao tác cơ bản
Bạn đã hoàn tất quá trình cài đặt cơ bản và nó đang chạy. Bây giờ bạn sẽ tìm hiểu hoạt động cơ bản từ dòng lệnh.
Tất cả các công cụ dòng lệnh đều có sẵn trong thư mục “ /opt/kafka/bin ”.
Tạo Topic
Để tạo Topic mới, hãy sử dụng tập lệnh “ kafka-topics.sh ” như bên dưới. Trong ví dụ này, chúng tôi đang tạo một chủ đề mới với tên “ TestTopic ” với 1 bản sao và phân vùng. Và bạn sẽ nhận được kết quả như “ Đã tạo chủ đề TestTopic ”.
sudo -u kafka /opt/kafka/bin/kafka-topics.sh \
--create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic TestTopic
Để xác minh danh sách các chủ đề có sẵn trên máy chủ của bạn, hãy chạy lệnh sau. Và bạn sẽ thấy “ TestTopic ” mà bạn vừa tạo có sẵn trên máy chủ.
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Ghi dữ liệu vào Topic
Bạn đã tạo Topic, bây giờ bạn có thể thử ghi và truyền dữ liệu bằng cách sử dụng dòng lệnh tiêu chuẩn “ kafka-console-producer.sh ” và “ kafka-console-consumer.sh “.
Tập lệnh “ kafka-console-producer.sh ” là một tiện ích dòng lệnh có thể được sử dụng để ghi dữ liệu vào Topic. Và tập lệnh “ kafka-console-consumer.s h” được sử dụng để truyền dữ liệu từ thiết bị đầu cuối.
Trên phiên shell hiện tại, hãy chạy lệnh sau để khởi động Nhà sản xuất bảng điều khiển. Ngoài ra, bạn sẽ cần chỉ định cho chủ đề đó, trong ví dụ này, chúng tôi sẽ sử dụng “ TestTopic “.
Liệt kê Topic
sudo -u kafka /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TestTopic
Tiếp theo, mở shell hoặc terminal khác và kết nối với máy chủ. Sau đó, chạy lệnh sau để khởi động Apache Kafka Consumer. Hãy chắc chắn chỉ định Topic ở đây.
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TestTopic --from-beginning
Bây giờ bạn có thể nhập bất kỳ tin nhắn nào từ Nhà sản xuất Bảng điều khiển và các tin nhắn sẽ tự động xuất hiện và phát trực tuyến trên Người tiêu dùng Bảng điều khiển.
Bây giờ bạn chỉ cần nhấn “ Ctrl+c ” để thoát khỏi nhà sản xuất và người tiêu dùng Kafka Console.
Một thao tác cơ bản khác của Kafka mà bạn nên biết ở đây là cách xóa một chủ đề trên Kafka. Và điều này cũng có thể được thực hiện bằng cách sử dụng tiện ích dòng lệnh “ kafka-topics.sh ”.
Xoá Topic
Nếu bạn muốn xóa chủ đề “ TestTopic “, bạn có thể sử dụng lệnh sau. Bây giờ “ TestTopic ” sẽ bị xóa khỏi máy chủ Kafka của bạn.
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic TestTopic
Import/Export dữ liệu bằng Plugin Kafka Connect
Tiếp theo, bạn phải tìm hiểu hoạt động cơ bản của Apache Kafka bằng cách tạo chủ đề và truyền phát tin nhắn bằng cách sử dụng Nhà sản xuất và Người tiêu dùng Bảng điều khiển Kafka. Bây giờ bạn sẽ tìm hiểu cách truyền phát tin nhắn từ một tệp thông qua plugin “Kafka Connect”. Plugin này có sẵn trên bản cài đặt mặc định, các plugin mặc định cho Kafka có sẵn trên thư mục “ /opt/kafka/libs ”.
Import dữ liệu
Chỉnh sửa tệp cấu hình “ /opt/kafka/config/connect-standalone.properties ” bằng trình chỉnh sửa nano.
sudo -u kafka nano /opt/kafka/config/connect-standalone.properties
Thêm cấu hình sau vào tập tin. Điều này sẽ kích hoạt plugin Kafka Connect có sẵn trên thư mục “/opt/kafka/libs” .
plugin.path=libs/connect-file-3.2.0.jar
Khi bạn hoàn tất, hãy lưu và đóng tệp.
Tiếp theo, tạo một tệp ví dụ mới mà bạn sẽ nhập và truyền phát tới Kafka. Dựa trên các tệp cấu hình Apache Kafka, bạn phải tạo tệp “ test.txt ” trong thư mục cài đặt Kafka “ /opt/kafka “.
Chạy lệnh bên dưới để tạo một tệp mới “ /opt/kafka/test.txt “.
sudo -u kafka echo -e "Test message from file\nTest using Kafka connect from file" > /opt/kafka/test.txt
Từ thư mục làm việc “ /opt/kafka ”, hãy chạy lệnh sau để khởi động trình kết nối kafka ở chế độ độc lập.
Ngoài ra, chúng tôi thêm ba tệp cấu hình bổ sung làm tham số tại đây. Tất cả các tệp này đều chứa cấu hình cơ bản mà dữ liệu sẽ được lưu trữ, theo chủ đề nào và tệp nào sẽ được xử lý. Giá trị mặc định của các cấu hình này là dữ liệu sẽ có sẵn về chủ đề “connect-test” với file nguồn “test.txt” mà bạn vừa tạo.
Bạn sẽ thấy rất nhiều thông báo đầu ra.
cd /opt/kafka
sudo -u kafka /opt/kafka/bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
Export dữ liệu
Bây giờ hãy mở shell/phiên đầu cuối khác và chạy lệnh sau để khởi động Kafka Console Consumer. Trong ví dụ này, các luồng dữ liệu sẽ có sẵn về chủ đề “ connect-test “.
Bây giờ bạn sẽ thấy dữ liệu trên tệp “ test.txt ” được truyền phát trên Console Consumer shell hiện tại của bạn.
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
Nếu bạn cố gắng thêm một thông báo khác vào tệp “ test.txt “, bạn sẽ thấy thông báo sẽ tự động được phát trực tuyến trên Kafka Console Consumer.
sudo -u kafka echo "Another test message from file test.txt" >> test.txt
Phần kết luận
Trong hướng dẫn này, bạn đã học cách cài đặt để xử lý luồng và môi giới tin nhắn trên hệ thống Ubuntu 22.04. Bạn cũng đã tìm hiểu cấu hình cơ bản trên hệ thống Ubuntu. Ngoài ra, bạn cũng đã học cách vận hành cơ bản bằng cách sử dụng Apache Kafka Nhà sản xuất và Người tiêu dùng. Và cuối cùng, bạn cũng đã học cách truyền trực tuyến các tin nhắn hoặc sự kiện từ một tệp tới Apache Kafka.
Tham Khảo
https://www.howtoforge.com/tutorial/ubuntu-apache-kafka-installation
Đăng ký liền tay Nhận Ngay Bài Mới
Subscribe ngay
Cám ơn bạn đã đăng ký !
Lỗi đăng ký !
Add Comment