Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows

Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows

Trong bài này mình sẽ thực hiện cài đặt zookeeper và apache kafka sau đó tạo topics, producer và consumer để demo.

(Xem thêm: Code ví dụ Java Kafka consumer)
(Xem thêm: Code ví dụ Java Kafka producer)

Yêu cầu:

Máy bạn đã cài đặt và thiết lập biến môi trường Java (JRE/JDK)

(Xem lại: Cài đặt và thiết lập biến môi trường cho Java)

Cài đặt Apache Kafka và Apache Zookeeper

Download Zookeeper tại đây: zookeeper-3.4.12.tar.gz | http://zookeeper.apache.org/releases.html#download

Download Kafka tại đây: kafka_2.12-1.1.0.tgzhttp://kafka.apache.org/downloads.html

1. Cài đặt Zookeeper

(Xem lại: Zookeeper là gì?)

B1: Giải nén file zookeper tải về, ở đây mình giải nén ra thư mục C:\app\zookeeper-3.4.12

B2: Đổi tên file zoo_sample.cfg trong thư mục conf thành zoo.cfg (zookeeper sẽ sử dụng file zoo.cfg để config)

Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows

B3: Mở file zoo.cfg (có thể mở bằng notepad hoặc notepadd++) và sửa dataDir=/tmp/zookeeper thành dataDir=zookeeper-3.4.12/data

B4: Tạo biến môi trường cho zookeeper với

  • System variable name = ZOOKEEPER_HOME; System variable value = C:\app\zookeeper-3.4.12
  • Thêm %ZOOKEEPER_HOME%\bin vào Path System Variable

Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows stackjava.com Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows stackjava.com

B5. Start zookeeper bằng cách mở màn hình cmd và gõ zkserver

Kết quả: (Port mặc định của zookeeper là 2181, bạn có thể đổi nó trong file zoo.cfg)

Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows stackjava.com

2. Cài đặt Apache Kafka

B1. Download và giải nén kafka, ở đây mình giải nén ra thư mục: C:\app\kafka_2.12-1.1.0

B2: Mở file “server.properties” trong thư mục config và sửa “log.dirs=/tmp/kafka-logs”  thành “log.dirs=C:/app/kafka_2.12-1.1.0/kafka-logs”.

B2: Mở file "server.properties" trong thư mục config và sửa log.dirs=/tmp/kafka-logs” to “log.dir= C:\kafka_2.11-0.9.0.0\kafka-logs”.

Sửa”zookeeper.connect=localhost:2181” thành địa chỉ mà server zookeeper chạy. Ở đây mình chạy trên local và dùng port mặc định cho zookeeper là 2181 nên mình giữ nguyên.

B3: Start apache kafka (phải start zookeeper trước đó). Port mặc định của kafka là 9092.

Mở màn hình cmd:

  • Di chuyển tới thư mục kafka bằng cách gõ “cd C:\app\kafka_2.12-1.1.0” và enter
  • Start kafka server bằng cách chạy lệnh “.\bin\windows\kafka-server-start.bat .\config\server.properties”

Start apache kafka (phải start zookeeper trước đó). Port mặc định của kafka là 9092.

3. Tạo Topic

Ví dụ tạo topic với name = “test” (Phải chạy kafka server trước đó). Mở màn hình cmd và chạy các lệnh:

  • cd C:\app\kafka_2.12-1.1.0\bin\windows
  • kafka-topics.bat –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic test
/bin/kafka-topics.bat --create \
--zookeeper <hostname>:<port> \
--topic <topic-name> \
--partitions <number-of-partitions> \
--replication-factor <number-of-replicating-servers>

4. Tạo Producer và Consumer thực hiện trao đổi thông qua topic test

Tạo Producer: mở màn hình cmd mới và gõ lệnh:

  • cd C:\app\kafka_2.12-1.1.0\bin\windows
  • kafka-console-producer.bat –broker-list localhost:9092 –topic test

Tạo Consumer: mở màn hình cmd mới và gõ lệnh:

  • cd C:\app\kafka_2.12-1.1.0\bin\windows
  • kafka-console-consumer.bat –zookeeper localhost:2181 –topic test

Kết quả: trên màn hình cmd của producer gõ bất kì message gì thì màn hình cmd consumer đều nhận được

Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows stackjava.com

Một số lệnh kafka hay dùng khác:

(Trên windows các file kafka-topics.bat, kafka-console-consumer.bat… sẽ nằm trong folder bin/windows; còn trên linux sẽ là các file .sh ở folder bin)

  • Liệt kê tất cả các topic: kafka-topics.bat –list –zookeeper localhost:2181
  • Hiện chi tiết 1 topic: kafka-topics.bat –describe –zookeeper localhost:2181 –topic [Topic Name]
  • Đọc tất cả các message của một topic: kafka-console-consumer.bat –zookeeper localhost:2181 –topic [Topic Name] –from-beginning
  • Xóa một topic: kafka-run-class.bat kafka.admin.TopicCommand –delete –topic [topic_to_delete] –zookeeper localhost:2181

Cài đặt, chạy Apache Kafka, Apache Zookeeper trên windows stackjava.com

Okay, Done!

 

References:

http://kafka.apache.org/

http://zookeeper.apache.org/

 

stackjava.com