如何在Windows上脱离Cygwin运行ApacheKafka
2016-01-26 01:35:20 | 来源:玩转帮会 | 投稿:佚名 | 编辑:小柯

原标题:如何在Windows上脱离Cygwin运行ApacheKafka

本文由玩赚乐(www.banghui.org)– Sandbox Wang原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

简介

本文旨在教你如何在Windows系统上一步步地搭建ApacheKafka,同时给出如何安装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:\ProgramFiles\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已经安装成功。

安装和运行ApacheZookeeper

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命令,如下图示:

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

安装配置ApacheKafka

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–zookeeperlocalhost:2181–replication-factor1–partitions1–topictest

创建消息发送者和接收者

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

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

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

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

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

其他有用的命令

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

kafka-topics.bat–zookeeperlocalhost:2181–list

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

kafka-topics.bat–zookeeperlocalhost:2181–describe–topic<topicname>

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

kafka-console-consumer.bat–zookeeperlocalhost:2181–from-beginning–topictest

4)删除某个消息主题:

kafka-run-class.batkafka.admin.TopicCommand–zookeeperlocalhost:2181–delete–topic<topicname>

或者:

kafka-topics.bat–delete–zookeeperlocalhost:2181–topic<topicname>

参考链接

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

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

总结

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

译文链接:
英文原文:Running Apache Kafka on Windows without Cygwin
翻译作者:玩赚乐(www.banghui.org)– Sandbox Wang
[转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]

tags:

上一篇  下一篇

相关:

Android应用架构之MVP实现

回顾上一篇文章 《Android应用架构概述》 ,我们知道,Android App 本质上抽象成两个层次:视图和数据。为了

NLB网路负载均衡管理器详解

序言在上一篇配置iis负载均衡中我们使用啦微软的ARR,我在那篇文章也中提到了网站的高可用性,但是ARR只能做

Android开发者需要面对的8大挑战

本文由玩赚乐(www.banghui.org)– 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

Android扩展OkHttp支持请求优先级调度

在当今这个App泛滥的时代,网络请求几乎是每一个App必不可少的一部分,请求几乎遍布App的每一个界面中。我们

为什么说维基百科的存在是一个奇迹?

文/The 308(微信公众号:科技新知)这两年,“情怀”这两个字的内涵在国人心中可能已经发生了变异;这多半

基于JavaScript的操作系统你听说过吗?

我想大多数人听说过Node.js,但是你听说过 NodeOS 吗?没错,NodeOS,一个用 Node.js 写的操作系统。好吧,

付费1.25晚评

今天指数继续窄幅震荡,整天的波动幅度极小,成交金额今天沪指再创阶段新低,成交1640亿,较周五再度缩小,

《想入飞飞》又演又唱 蔡淳佳让200人动容

美声歌手蔡淳佳首度演出电影。(华映提供) 蔡淳佳在《想入飞飞》中又唱又演。(华映提供) 《想入飞飞》

《最后一战5:守护者》推出2016年第一弹更新

科技中心/台北报导台湾微软今日宣布Halo 5: Guardians《最后一战5:守护者》本周推出“Infinity's Armory”

一场围绕食物的对话即将开始,有意者请速围观

本文由 Coolhunting 授权《好奇心日报》发布,即使我们允许了也不许转载。 早在大家最爱的速食玉米卷摊位遭

站长推荐: