CONTENTS:
1. INSTALL¶
2. RUN EXAMPLE¶
3. INSTALL DRASH BOARD¶
Hướng dẫn cài đặt kafka:¶
Single-Node cluster¶
- Cài đặt java:
sudo apt-get install default-jre
sudo apt-get install default-jdk
- Tạo user kafka
sudo useradd kafka -m
sudo passwd kafka
sudo adduser kafka sudo
su -l kafka
- dowload, giải nén kafka:
curl "http://www-eu.apache.org/dist/kafka/1.1.0/kafka_2.12-1.1.0.tgz" -o ~/kafka.tgz
mkdir ~/kafka && cd ~/kafka
tar -xvzf ~/kafka.tgz --strip 1
- tạo các service file : zookeeper service và kafka service:
- tạo file /etc/systemd/system/zookeeper.service với nội dung
[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
- tạo file /etc/systemd/system/kafka.service
[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
- Start kafka, zookeeper.
sudo systemctl start kafka
ta đã cài được cụm kafka với 1 broker, dùng cổng 9092. zookeeper service mở cổng 2181
Multi-Node cluster¶
Thực hiện nguyên các bước như single node, chỉ khác trước khi khởi động kafka. ta cần sửa các cấu hình:
- File ~/kafka/config/server.properties:
- sửa dòng
broker.id=0
Sao cho mỗi broker trong cluster sử dụng 1 broker id khác nhau
- sửa dòng
zookeeper.connect=localhost:2181
Sao cho tất cả các node trong cụm trỏ thống nhất về 1 zookeeper . vd như sửa tại tất cả các node thành
zookeeper.connect=192.168.2.191:2181
Chạy example :¶
- Tạo một topic
~/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic TutorialTopic
- Ghi dữ liệu vào topic nhờ kafka producer console
echo "Hello, World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TutorialTopic > /dev/null
- List topic:
~/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
- Đọc dữ liệu từ topic trên nhờ kafka consummer console
~/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TutorialTopic --from-beginning
Cài đặt DrashBoarsh¶
Docker:
docker run -d --net=host --restart unless-stopped --name kafka_manager -e ZK_HOSTS="localhost:2181" -e APPLICATION_SECRET=letmein sheepkiller/kafka-manager
Một web-controll sẽ được mở ra tại cổng 9000