如何在Debian 10/9上安装Apache Kafka
Apache Kafka是一个分布式流媒体平台。
它对于构建实时流数据管道以在系统或应用程序之间获取数据非常有用。
另一个有用的特性是实时流应用程序,它可以转换数据流或对数据流作出反应。
本教程将在Debian 10、Debian 9和Debian 8系统上安装Apache Kafka 。
步骤1 -安装Java
Apache Kafka需要Java来运行。
我们必须在系统上安装java。
执行下面的命令在你的系统上安装默认的OpenJDK。
sudo apt update sudo apt install default-jdk
第2步-下载Apache Kafka
从其官方下载网站下载Apache Kafka二进制文件。
你也可以选择附近的镜像来下载。
wget http://www-us.apache.org/dist/kafka/2.4.0/kafka_2.13-2.4.0.tgz
然后解压存档文件
tar xzf kafka_2.13-2.4.0.tgz mv kafka_2.13-2.4.0 /usr/local/kafka
步骤3 -创建Systemd文件
接下来,为Zookeeper和Kafka服务创建systemd文件。
这将有助于使用systemctl命令管理Kafka服务的启动/停止。
首先,使用下面的命令为Zookeeper创建systemd文件:
vim /etc/systemd/system/zookeeper.service
添加以下内容:
[Unit] Description=Apache Zookeeper server Documentation=http://zookeeper.apache.org Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
保存文件并关闭它。
接下来,使用以下命令创建Kafka systemd文件:
vim /etc/systemd/system/kafka.service
添加以下内容。
请确保根据系统上安装的Java设置正确的 JAVA_HOME路径。
[Unit] Description=Apache Kafka Server Documentation=http://kafka.apache.org/documentation.html Requires=zookeeper.service [Service] Type=simple Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64" ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh [Install] WantedBy=multi-user.target
保存文件并关闭。
重新加载systemd守护进程以应用新的更改。
systemctl daemon-reload
步骤4 -启动Kafka服务器
Kafka需要ZooKeeper,所以首先在你的系统上启动一个ZooKeeper服务器。
可以使用Kafka提供的脚本启动单节点ZooKeeper实例。
sudo systemctl start zookeeper
现在启动Kafka服务器并查看运行状态:
sudo systemctl start kafka sudo systemctl status kafka
Kafka安装已经成功完成。
第五步-在Kafka中创建一个主题(Topic)
Kafka提供了多个预构建的shell脚本。
首先,创建一个名为“testTopic”的主题,它有一个单独的分区和一个副本:
cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic Created topic testTopic.
replication-factor
指明将创建多少个数据副本。
因为我们只运行一个实例,所以保持这个值为1。
partitions
设置为我们希望在数据之间分割的代理的数量。
因为我们使用单个代理运行,所以将此值保持为1。
我们可以通过运行与上面相同的命令来创建多个主题。
运行以下命令查看在Kafka上创建的主题:
bin/kafka-topics.sh --list --zookeeper localhost:2181 testTopic theitroadTutorial1 theitroadTutorial2
另外,除了手动创建主题,我们还可以配置代理,以便在不存在的主题发布到时自动创建主题。
第6步-发送消息给Kafka
“生产者”是负责把数据放入我们的Kafka的过程。
Kafka附带一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送给Kafka集群。
默认的Kafka将每一行作为单独的消息发送。
让我们运行生成器,然后在控制台中输入一些消息发送到服务器。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic >Welcome to kafka >This is my first topic >
我们可以退出此命令,也可以继续运行此终端以进行进一步测试。
现在,下一步为Kafka使用者进程打开一个新的终端。
步骤7 -使用Kafka消费者
Kafka还有一个命令行用户,用于从Kafka集群读取数据并将消息显示到标准输出。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is my first topic
现在,如果我们仍然在另一个终端上运行Kafka producer(步骤# 6)。
只需在那个producer终端上输入一些文本。
它将立即可见的消费者终端。
总结
我们已经成功地在Debian Linux机器上安装和配置了Kafka服务。