如何在Windows上脱离Cygwin运行Apache Kafka

本文由码农网 – Sandbox Wang原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划

简介

本文旨在教你如何在Windows系统上一步步地搭建Apache Kafka,同时给出如何安装Java环境和Zookeeper的步骤。Kafka是一个快速且扩展性良好的消息队列系统,能够轻松应对要求实时进行大量读写操作的场景。你可以在官方网站(http://kafka.apache.org/)找到更多的学习资料。Kafka依赖于一个运行的Zookeeper实例,通过它来完成分布式系统下各组件可靠的协调通信。你可以在Zookeeper的官方网站找到更多资料。

下载需要的安装文件

1,根据你的操作系统版本和CPU架构来选择适合的JRE运行时软件:

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

2,到Apache官网下载Zookeeper,并解压缩到某个目录:

http://zookeeper.apache.org/releases.html

3,到Apache官网下载Kafka,并解压缩到某个目录:

http://kafka.apache.org/downloads.html

安装过程

安装JRE环境

1)启动JRE安装文件,这里以1.8版本为例,需要提醒的是,在启动安装的时候记得勾选“改变安装目录”,如下图:

2)在下一个画面里将安装目录选择成别的不带空格的路径下,例如默认情况下此路径会是“C:\Program Files\Java\jre1.8.0_xx”,你可以将它修改成“C:\Java\jre1.8.0_xx”。点击下一步。

3)然后打开系统环境编辑对话框。右击“我的电脑”,选择“属性”,再选择“高级系统设置”,在弹出的系统属性对话框的“高级”面板中,点击下方的“环境变量”按钮,打开环境变量编辑对话框。

4)新建名字为“JAVA_HOME”的用户变量,值为安装的JRE的根路径,如下图:

5)点击“确定”。

6)在系统变量里找到名为“PATH”的变量,修改它的值,在值的最后面添加JRE的bin目录“;%JAVA_HOME%\bin”。

7)为了确定JRE带的java.exe命令已经全局可用,请打开一个命令终端,运行java –version.如果安装正常,则会打印如下图所示的版本信息。

8)为了确保Java已经安装成功,打开cmd命令行工具,并输入 “java –version”,当你看到下图的信息时,表示java已经安装成功。

安装和运行Apache Zookeeper

1) 进入Zookeeper解压目录下面的conf目录,如:“F:\programs\zookeeper-3.4.6\conf”;

2) 将文件zoo_sample.cfg重命名为zoo.cfg;

3) 用文本编辑器打开zoo.cfg,找到“dataDir=/tmp/zookeeper”,将其修改为“dataDir=/programs/zookeeper-3.4.6/data”;

4) 添加名为ZOOKEEPER_HOME的系统变量项,变量的值为“F:\programs\zookeeper-3.4.6\”;同时将F:\programs\zookeeper-3.4.6\bin目录添加到为名PATH的系统变量的值中;

5) 打开Windows命令提示符,定位当前目录到F:\programs\zookeeper-3.4.6\bin,然后执行执行zkServer.cmd命令,如下图示:

以上命令成功执行不报错的话,代表Apache Zookeeper实例已经成功在端口2181运行了。

安装配置Apache Kafka

1) 找到Kafka的解压目录(此教程中是“F:\programs\kafka_2.11-0.8.2.2”),进入子目录config;

2) 用文本编辑器编辑server.properties文件,找到其中的行:“log.dirs=/tmp/kafka-logs”,将其修改为“log.dirs=/programs/kafka_2.11-0.8.2.2/logs”;

3) 如果你在上一步将Zookeeper装在了其他的机器上,您还需要找到这一行:“zookeeper.connect=localhost:2181”,将其中的localhost修改为Zookeeper所在的机器的IP地址或者机器名。在本教程中,因为Zookeeper和Kafka是在同一台机器,所以此行无需改变。

运行kafka

在运行Kafka之前请确定Zookeeper已经正常启动。

1) 进入Kafka的安装目录,此教程中是“F:\programs\kafka_2.11-0.8.2.2”;

2) 右击资源管理器的空白处,然后在右键菜单中选择“在此处打开命令窗口”来打开一个命令提示窗口;

3) 键入以下命令:.\bin\windows\kafka-server-start.bat .\config\server.properties,然后按回车运行:

4) 如果一切正常不报错,那么输出会类似下图:

5) 现在为止,你的Kafka已经启动并且运行了,现在你可以通过java或者scala代码来创建消息主题(topic)、向消息主题里写消息或者读数据了。下面展示如何使用Kafka自带的命令来完成消息主题的创建、读、写。

创建Kafka消息主题

1) 现在创建一个名为test的消息主题,并且指定它的分发因数是1(因为我们的Kafka集群只有一台机器)。如果你的集群有更多的机器的话,你可以相应的增加这个分发因数来提高消息系统的可容错性和扩展性;

2) 打开命令提示窗口,转到这个目录”F:\programs\kafka_2.11-0.8.2.2\bin\windows”;

3) 运行下面的命令:

kafka-topics.bat –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic test

创建消息发送者和接收者

1) 创建发送者(producer)。在目录”F:\programs\kafka_2.11-0.8.2.2\bin\windows”下面打开命令提示符,运行下面命令:kafka-console-producer.bat –broker-list localhost:9092 –topic test;

2) 创建接收者(consumer)。同样在目录“bin\windows”下面打开命令提示符,运行下面命令:kafka-console-consumer.bat –zookeeper localhost:2181 –topic test;

3) 正常不报错的话,运行效果如下图所示(一个生产者一个消费者,两个提示窗口):

4) 在生产者窗口里输入任意字符串,如“Hello”,然后按回车,您将会看到在消费者窗口看到它被成功接收并打印出来;

5) 如果您能成功完成上述步骤,那说明您的第一个Kafka实例已经成功运行了。

其他有用的命令

1) 列出当前所有的消息主题(topic):

kafka-topics.bat –zookeeper localhost:2181 –list

2) 查看某个消息主题的状态信息:

kafka-topics.bat –zookeeper localhost:2181 –describe –topic <topic name>

3) 从头读取某个topic的所有消息:

kafka-console-consumer.bat –zookeeper localhost:2181 –from-beginning –topic test

4) 删除某个消息主题:

kafka-run-class.bat kafka.admin.TopicCommand –zookeeper localhost:2181 –delete –topic <topic name>

或者:

kafka-topics.bat –delete –zookeeper localhost:2181 –topic <topic name>

参考链接

1) Apache Kafka项目官方文档,http://kafka.apache.org/documentation.html

2) Apache Zookeeper项目官方文档,https://zookeeper.apache.org/doc/trunk/zookeeperStarted.html

总结

我相信这篇文章对于那些想要在Windows桌面或服务器版本上安装运行Apache Kafka的初、中级用户来说会是非常有用的,可以帮助用户摆脱笨重的Cygwin环境,快速运行Kafka实例。

译文链接:http://www.codeceo.com/article/run-apache-kafka-windows-no-cygwin.html
英文原文:Running Apache Kafka on Windows without Cygwin
翻译作者:码农网 – Sandbox Wang
转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]