请注意本文编辑时间↑
我在查资料的时候遇到好多现在已经不适用了的……
1. 树莓派安装Java
配置环境变量
2. 树莓派运行KRaft (Kafka Raft)
每一步参考了不同的文献
2.1 Generate a cluster ID
官方:
$ ./bin/kafka-storage.sh random-uuid
xtzWWN4bTjitpL3kfd9s5g
我的:
$ ./bin/kafka-storage.sh random-uuid
Java HotSpot(TM) Server VM warning: G1 GC is disabled in this release.
P3ewPgDaRVyi8I1pCPq9AQ
中间那一行我忽略了没管。
2.2 Format Storage Directories
官方:
$ ./bin/kafka-storage.sh format -t <uuid> -c ./config/kraft/server.properties
Formatting /tmp/kraft-combined-logs
我的:
$ ./bin/kafka-storage.sh format -t P3ewPgDaRVyi8I1pCPq9AQ -c ./config/kraft/server.properties
Java HotSpot(TM) Server VM warning: G1 GC is disabled in this release.
Formatting /tmp/kraft-combined-logs
2.3 允许监听非本地请求
官方没有这一步。
首先打开配置文件。
$ sudo nano ./config/kraft/server.properties
将advertised.listeners=PLAINTEXT://localhost:9092
这一行内容用#
注释掉。
配置文件里对这一段的说明是
Hostname and port the broker will advertise to producers and consumers. If not set, it uses the value for "listeners" if configured. Otherwise, it will use the value returned from java.net.InetAddress.getCanonicalHostName().
2.4 Start the Kafka Server
$ ./bin/kafka-server-start.sh ./config/kraft/server.properties
2.5 Create Topic
需要开启另一个终端窗口(因为第一个窗口里正在运行Kafka服务器)。
$ ./bin/kafka-topics.sh --create --topic foo --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
Created topic foo.
以下步骤可要可不要,所以用括号标了一下。
(2.6 在树莓派上启动生产者)
官方:
$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
This is my first event
This is my second event
我的:
$ bin/kafka-console-producer.sh --topic foo --bootstrap-server localhost:9092
Java HotSpot(TM) Server VM warning: G1 GC is disabled in this release.
>123
>456
然后就可以输入各种消息。
(2.7 在树莓派上启动消费者)
需要再开启另一个终端窗口(因为第二个窗口里正在运行Kafka生产者)。
官方:
$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
This is my first event
This is my second event
我的:
$ bin/kafka-console-consumer.sh --topic foo --from-beginning --bootstrap-server localhost:9092
Java HotSpot(TM) Server VM warning: G1 GC is disabled in this release.
123
456
(2.8 把Kafka服务器放在后台运行)
3. 树莓派放通端口
3.1 安装防火墙
sudo apt-get install ufw
3.2 放通ssh端口(用于ssh连接)
sudo ufw allow 22
3.3 放通Kafka端口
sudo ufw allow 9092
3.4 启动防火墙
sudo ufw enable
(3.5 放通远程桌面连接端口)
sudo ufw allow 3389
3.6 其它
假如执行防火墙有关的命令时遇到报错
ERROR: Couldn't determine iptables version
则需要将树莓派重启一下
sudo reboot
4. Java连接Kafka
4.1 Producer
4.2 Consumer
5. 补充
按照上述步骤操作,仅能在树莓派与电脑直连的情况下实现数据传输。当二者不是直接连接时,即使在同一局域网下,虽然可以远程登录树莓派,但也无法通过Kafka传输数据。这一问题目前尚未解决。(但找同学借个Mac可以)
网友评论