windows环境安装kafka
安装kafka之前先安装JDK.....
一:安装Zookeeper
Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper
1:下载安装文件:https://download.csdn.net/download/weixin_33446857/10624824
2:解压文件(本文解压到 H:\JAVA\yingyong\kafka)
3:打开H:\JAVA\yingyong\kafka\zookeeper-3.4.6\conf,把zoo_sample.cfg重命名成zoo.cfg
更改前:
更改后:
4: 在任意文本编辑器(如notepad)中打开zoo.cfg,修改dataDir保存路径
如:dataDir=H:/JAVA/yingyong/kafka/zookeeper-3.4.6/logs
或者 dataDir=H:\\JAVA\\yingyong\\kafka\\zookeeper-3.4.6\\logs
(路径根据自己实际需要设置)
注意:路径要么是"/"分割,要么是转义字符"\\",这样会生成正确的路径(层级,子目录)。
默认端口是2181,如果需要更改也可以在zoo.cfg里面修改 (本文未做修改)
clientPort=2181
更改前:
更改后:
5: 添加系统变量:ZOOKEEPER_HOME= H:\JAVA\yingyong\kafka\zookeeper-3.4.6
(路径根据自己实际更改)
编辑path系统变量,添加路径:%ZOOKEEPER_HOME%\bin
6:打开cmd,输入zkServer,运行Zookeeper。
7:命令行提示如下:说明本地Zookeeper启动成功
恭喜,Zookeeper已经安装完成,已在2181端口运行。
注意:不要关了这个(cmd)窗口
二:安装并运行Kafka
1:下载地址:https://download.csdn.net/download/weixin_33446857/10624845
2:解压文件(本文解压到 H:\JAVA\yingyong\kafka)
3:进入kafka配置文件所在目录,H:\JAVA\yingyong\kafka\kafka_2.11-0.10.0.1\config,使用任意文本编辑器(如notepad)中打开
server.properties文件,
将log.dirs=/tmp/kafka-logs更改为:
log.dirs=H:/JAVA/yingyong/kafka/kafka_2.11-0.10.0.1/kafka-logs
或者
log.dirs=H:\\JAVA\\yingyong\\kafka\\kafka_2.11-0.10.0.1\\kafka-logs
同样注意:路径要么是"/"分割,要么是转义字符"\\",这样会生成正确的路径(层级,子目录)。
4:在server.properties文件中,zookeeper.connect=localhost:2181代表kafka所连接的zookeeper所在的服务器IP以及端口,可根据需要更改。本文在同一台机器上使用,故不用修改。
5:kafka会按照默认配置,在9092端口上运行,并连接zookeeper的默认端口2181。
三:运行kafka
提示:请确保启动kafka服务器前,Zookeeper实例已经在运行,因为kafka的运行是需要zookeeper这种分布式应用程序协调服务。
1:打开cmd,进入kafka安装目录,H:\JAVA\yingyong\kafka\kafka_2.11-0.10.0.1
2:在命令行中输入:.\bin\windows\kafka-server-start.bat .\config\server.properties 回车。
如果出现:
解决:在kafka安装目录中找到bin\windows目录中的kafka-run-class.bat中,加" "号,如下
修改前:
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
修改后:
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %*
保存完成后,再次执行 .\bin\windows\kafka-server-start.bat .\config\server.properties
正常情况 如下图:
到目前为止,zookeeper以及kafka都已正确运行。保持运行状态,不要关闭。
重要(操作日志的处理):
kafka启动后,在kafka安装目录下有个logs目录,里面默认生成一堆操作日志,而且会不断生成不同时间戳的操作日志。(这样看起来真心很乱):
这是因为,启动的时候是会默认使用到config目录下log4j.properties文件中的配置
找到config下的log4j.properties
编辑log4j.properties,将路径更改下即可,这样就可以归档在一个文件夹下边了,路径根据自己喜好定义:
当以后再启动kafka时,会在kafka安装目录下创建start-logs目录,里面存放日志。
另外如何消除不断生成日志的问题,就是同一天的不同时间会不停生成。
修改这里,还是在log4j.properties中:
本身都为trace,字面理解为会生成一堆跟踪日志,将其改为INFO即可。
测试:
(1):创建主题
①创建主题,命名为"test20190916",replicationfactor=1(因为只有一个kafka服务器在运行)。可根据集群中kafka服务器个数来修改replicationfactor的数量,以便提高系统容错性等。
②在G:\kgdxkj\yingyong\kafka_2.11-0.10.0.1\kafka_2.11-0.10.0.1\bin\windows目录下打开新的命令行(cmd)
③输入命令:
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test20190916
执行完毕之后,此窗口可以关闭。
(2):创建生产者(producer)和消费者(consumer)
①在G:\kgdxkj\yingyong\kafka_2.11-0.10.0.1\kafka_2.11-0.10.0.1\bin\windows目录下打开新的命令行(cmd)。
②输入命令,启动生产者:
kafka-console-producer.bat --broker-list localhost:9092 --topic test20190916
该窗口不要关闭。
③同样在该目录下打开新的命令行。
④输入命令,启动消费者:
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test20190916
该窗口不要关闭
现在生产者、消费者均已创建完成。
⑤在生产者命令行窗口中任意输入内容,回车 在消费命令行窗口中即可看到相应的内容。