1. 程式人生 > 實用技巧 >樹莓派4B使用docker安裝kafka和kafka-manger

樹莓派4B使用docker安裝kafka和kafka-manger

本次實踐將zookeeper、kafka和kafka-manager安裝在同一臺樹莓派4B上,樹莓派的IP設定為192.168.5.21,讀者可以根據實際情況調整自己的執行容器引數。

硬體:Raspberry Pi 4B(4g或8g版本)
系統:Ubuntu 20.04 LTS
Docker:18.09.9
zookeeper映象:pi4k8s/k8szk:v3.4.14
kafka映象:iecedge/cp-kafka-arm64:5.0.1
kafka-manger映象:pi4k8s/kafka-manger:1.3.3.23

  • 注意:因為我們樹莓派4B本身並非x86,而是arm架構,且我們的系統裝的是64位ubuntu,因此映象只能選擇arm64v8架構的映象。這裡我們選擇的kafka映象是iecedge/cp-kafka-arm64:5.0.1,對應的apache-kafka版本是2.0.x。zookeeper映象和kafka-manager映象都是參考x86版本的Dockerfile修改在樹莓派上重新編譯獲取。

執行容器

啟動zookeeper

docker run -itd --name k8szk \
-p 2181:2181 \
-e ZK_REPLICAS=1 \
-e ZK_HEAP_SIZE=512M \
--hostname=zk-1 \
-v /home/docker/server/zookeeper/data:/var/lib/zookeeper \
-v /home/docker/server/zookeeper/log:/var/log/zookeeper \
pi4k8s/k8szk:v3.4.14 \
/bin/bash -c "/usr/bin/zkGenConfig.sh && /usr/bin/zkServer.sh start-foreground"

啟動kafka

docker run -d \
  --name=kafka \
  -p 1099:1099 \
  -p 9092:9092 \
  -e KAFKA_BROKER_ID=1 \
  -e KAFKA_ZOOKEEPER_CONNECT=192.168.5.21:2181 \
  -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.5.21:9092 \
  -e KAFKA_JMX_PORT=1099 \
  -e KAFKA_JMX_HOSTNAME=192.168.5.21 \
  -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
  -e KAFKA_HEAP_OPTS="-Xmx512M -Xms512M" \
  -v /home/docker/server/kafka/data:/var/lib/kafka/data \
  iecedge/cp-kafka-arm64:5.0.1

啟動kafka-manager

docker run -d \
--name kafka-manager \
-p 9000:9000 \
--restart=always  \
--env ZK_HOSTS=192.168.5.17:2181 \
pi4k8s/kafka-manger:1.3.3.23

訪問kafka-manager

用瀏覽器訪問:http://192.168.5.21:9000/

測試kafka

開啟兩個終端分別進入kafka容器:
docker exec -it kafka-jmx bash

兩個終端分別作為consumer和producer進行測試:

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning

kafka-console-producer --broker-list localhost:9092 --topic test

參考

  • 樹莓派4B安裝 Ubuntu 20.04 LTS

  • 樹莓派4B安裝 docker18.09.9

推薦:菲律賓在哪