本文简要介绍如何在windows系统下安装kafka,kafka版本:kafka_2.11-1.0.0。

  • 安装运行环境
  • 安装、运行zookeeper
  • 安装、运行kafka

一、安装运行环境

1.下载并安装JAVA,下载地址:https://www.oracle.com/java/technologies/javase-downloads.html   下载JDK

2.设置系统环境变量

  • JAVA_HOME:C:\Program Files\Java\jdk1.8.0_251(jdk的安装路径)
  • 在Path现有值后面添加“;%JAVA_HOME%\bin”

安装成功后cmd执行:java -version可以查看java版本,出现以下提示表示安装成功。

windows kafka安装配置 kafka windows下安装_zookeeper

 

二、安装zookeeper

1.kafka依赖zookeeper服务器,所以必须安装并运行zookeeper,下载地址:https://zookeeper.apache.org/releases.html

2.解压到D:\kafka\zookeeper-3.4.14(路径按照自己需求自定义)

3.打开解压目录下conf文件夹,把zoo_sample.cfg重命名成zoo.cfg

4.编辑zoo.cfg文件,将dataDir的值修改为“./zookeeper-3.4.14/data”

5.在系统中添加以下系统变量

  • ZOOKEEPER_HOME: D:\kafka\zookeeper-3.4.14
  • 在Path现有值后面添加 ";%ZOOKEEPER_HOME%\bin"

6.打开cmd,运行以下命令,运行zookeeper。注意:cmd窗口不要关

zkServer

 

windows kafka安装配置 kafka windows下安装_java_02

 

三、安装、运行Kafka

1.下载kafka,地址:http://kafka.apache.org/downloads.html

2.解压到D:\kafka\kafka_2.11-1.0.0(路径按照自己需求自定义)

3.打开解压目录下config文件夹,编辑server.properties文件,将log.dirs的值修改为“./kafka-logs”

4.打开cmd,进入到kafka目录,cd /d D:\kafka\kafka_2.11-1.0.0(kafka的解压目录)

5.执行以下命令,注意:cmd窗口不要关

6.注意点:Kafka控制脚本在Linux和Windows平台有所不同,在Windows平台,请使用 bin\windows\ 而不是bin/, 并将脚本扩展名改为.bat

.\bin\windows\kafka-server-start.bat .\config\server.properties

windows kafka安装配置 kafka windows下安装_java_03

 

 至此,kafka运行环境搭建完成,kafka操作方面本文不作介绍,有兴趣的朋友可自行研究下。

另外,看到一位朋友的博客中对于server.properties配置说明,挺详细的,在此引用下:

//当前机器在集群中的唯一标识,和zookeeper的myid性质一样(broker.id和host.name每个节点都不相同)
broker.id=0
//当前kafka对外提供服务的端口默认是9092
listeners=PLAINTEXT://192.168.1.202:9092
//这个参数默认是关闭的,在0.8.1有个bug,DNS解析问题,失败率的问题。
host.name=hadoop1
//这个是borker进行网络处理的线程数
num.network.threads=3
//这个是borker进行I/O处理的线程数
num.io.threads=8
//发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.send.buffer.bytes=102400
//kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.receive.buffer.bytes=102400
//这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
socket.request.max.bytes=104857600
//消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,
//如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个
log.dirs=/home/hadoop/log/kafka-logs
//默认的分区数,一个topic默认1个分区数
num.partitions=1
//每个数据目录用来日志恢复的线程数目
num.recovery.threads.per.data.dir=1
//默认消息的最大持久化时间,168小时,7天
log.retention.hours=168
//轮转时间,当需要删除指定小时之前的数据时,该设置项很重要
log.roll.hours=12
//这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.segment.bytes=1073741824
//每隔300000毫秒去检查上面配置的log失效时间
log.retention.check.interval.ms=300000
//是否启用log压缩,一般不用启用,启用的话可以提高性能
log.cleaner.enable=false
//设置zookeeper的连接端口
zookeeper.connect=192.168.123.102:2181,192.168.123.103:2181,192.168.123.104:2181
//设置zookeeper的连接超时时间
zookeeper.connection.timeout.ms=6000

producer.properties

metadata.broker.list=192.168.1.100:9092,192.168.1.101:9092,192.168.1.102:9092

consumer.properties

zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181