在 Windows 上运行 Apache Kafka 而无需 Cygwin






2.87/5 (8投票s)
它将提供有关为 Windows 操作系统安装和配置 Apache Kafka 和 Zookeeper 的信息。
引言
本教程旨在提供在 Windows 操作系统上运行 Apache Kafka 的分步指南。本指南还将提供设置 Java 和 Zookeeper 的说明。Apache Kafka 是一个快速且可扩展的消息队列,能够处理非常繁重的读写负载。您可以在 http://kafka.apache.org/ 上找到有关 Kafka 的更多信息。Apache Kafka 需要运行一个 Zookeeper 实例,该实例用于可靠的分布式协调。请在 https://zookeeper.net.cn/ 上找到有关 Zookeeper 的更多信息。
观看此视频以了解在 Windows 上设置 Kafka。
下载所需文件
- 从 http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html 下载适用于您的操作系统和 CPU 架构的 Server JRE
- 从 http://www.7-zip.org/download.html 下载并安装 7-Zip
- 从 https://zookeeper.net.cn/releases.html 使用 7-Zip 下载并解压 Zookeeper
- 从 http://kafka.apache.org/downloads.html 使用 7-Zip 下载并解压 Kafka
安装
a. 安装和设置 Java 运行时环境 (JRE)
- 启动 JRE 安装,勾选“更改目标文件夹”复选框,然后点击安装。
- 将安装目录更改为任何不含空格的路径。例如 C:\Java\jre1.8.0_xx\。(默认情况下为 C:\Program Files\Java\jre1.8.0_xx)然后点击下一步。
- 现在,通过打开“控制面板”->“系统”->“高级系统设置”->“环境变量…”来打开系统环境变量对话框。
- 在“用户变量”部分,点击新建…按钮,然后输入 JAVA_HOME 作为变量名,并给出您的 jre 路径作为变量值。它看起来应该是这样的:
(Java 路径和版本可能因您使用的 Kafka 版本而异)
- 现在点击确定。
- 在刚才打开的“环境变量”对话框的“系统变量”部分中,搜索 Path 变量。
- 编辑 Path 变量,在已有文本末尾添加“;%JAVA_HOME%\bin”,如下图所示。
- 要确认 Java 安装,只需打开命令提示符并键入“java –version”,您应该能看到您刚刚安装的 Java 的版本。
如果您的命令提示符与上图类似,则表示设置成功。否则,您需要重新检查您的安装版本是否与操作系统架构(x86、x64)匹配,或者环境变量路径是否正确。
b. 安装和运行 Zookeeper
- 转到您的 zookeeper 配置目录。我的目录是C:\zookeeper-3.4.7\conf
- 将文件“zoo_sample.cfg”重命名为“zoo.cfg”
- 使用记事本等任何文本编辑器打开 zoo.cfg,但我推荐使用 Notepad++。
- 查找并编辑行dataDir=/tmp/zookeeper 为 dataDir=C:\zookeeper-3.4.7\data
- 像为 Java 所做的那样,在系统环境变量中添加条目。
- 在系统变量中添加 ZOOKEEPER_HOME = C:\zookeeper-3.4.7
- 编辑名为“Path”的系统变量,添加 ;%ZOOKEEPER_HOME%\bin;
- 您可以在 zoo.cfg 文件中更改默认的 Zookeeper 端口(默认端口 2181)。
- 通过打开一个新的命令提示符并键入 zkserver 来运行 Zookeeper。
- 您将看到命令提示符显示一些详细信息,如下面的图片所示。
恭喜,您的 Zookeeper 已在 2181 端口上成功运行。
c. 设置 Kafka
- 转到您的 Kafka 配置目录。我的目录是C:\kafka_2.11-0.9.0.0\config
- 编辑文件“server.properties”
- 查找并编辑行“log.dirs=/tmp/kafka-logs”为“log.dir= C:\kafka_2.11-0.9.0.0\kafka-logs”。
- 如果您的 Zookeeper 运行在其他机器或集群上,您可以将“zookeeper.connect=localhost:2181”更改为您的自定义 IP 和端口。在本演示中,我们使用同一台机器,因此无需更改。Kafka 端口和 broker.id 也可以在此文件中配置。其他设置保持不变。
- 您的 Kafka 将在默认端口 9092 上运行,并连接到 Zookeeper 的默认端口 2181。
d. 运行 Kafka 服务器
注意请确保在启动 Kafka 服务器之前,您的 Zookeeper 正在运行。
- 转到您的 Kafka 安装目录C:\kafka_2.11-0.9.0.0\
- 在此处按Shift+右键单击并选择“在此处打开命令窗口”选项来打开命令提示符。
- 现在键入 .\bin\windows\kafka-server-start.bat .\config\server.properties 并按 Enter 键。
- 如果一切顺利,您的命令提示符将如下所示。
- 现在您的 Kafka 已经启动并运行,您可以从 Java/Scala 代码和命令提示符创建主题并生产或消费数据。
e. 创建 Kafka 主题
- 现在创建一个名为“test”的复制因子为 1 的主题,因为我们只有一个 Kafka 服务器在运行。如果您拥有一个包含 1 个以上 Kafka 服务器的集群,您可以相应地增加复制因子,这将增加数据的可用性并充当容错系统。
- 在 C:\kafka_2.11-0.9.0.0\bin\windows 目录中打开一个新的命令提示符。
- 键入以下命令并按 Enter 键:
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
f. 创建生产者和消费者来测试服务器
- 在 C:\kafka_2.11-0.9.0.0\bin\windows 目录中打开一个新的命令提示符。
- 要启动生产者,请键入命令“kafka-console-producer.bat --broker-list localhost:9092 --topic test”。
- 再次在与C:\kafka_2.11-0.9.0.0\bin\windows相同的目录中打开一个新的命令提示符。
- 现在通过键入命令“kafka-console-consumer.bat --zookeeper localhost:2181 --topic test”来启动消费者。
- 现在您将有两个命令提示符,如下面的图片所示。
- 现在在生产者命令提示符中键入任何内容并按 Enter,您应该能在另一个消费者命令提示符中看到消息。
- 如果您能够将消息推送到消费者端并看到它们,那么您的 Kafka 设置就完成了。
其他一些有用的命令
- 列出主题:kafka-topics.bat --list --zookeeper localhost:2181
- 描述主题:kafka-topics.bat --describe --zookeeper localhost:2181 --topic [主题名称]
- 从头开始读取消息:kafka-console-consumer.bat --zookeeper localhost:2181 --topic [主题名称] --from-beginning
- 删除主题:kafka-run-class.bat kafka.admin.TopicCommand --delete --topic [要删除的主题] --zookeeper localhost:2181
参考链接
结论
我确信,这篇文章对于初学者和中级程序员在 Windows 服务器或台式机上启动 Kafka 服务器会有所帮助。
您友好的
Gopal Tiwari