windows环境安装kafka
本文简要介绍如何在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版本,出现以下提示表示安装成功。
二、安装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
三、安装、运行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
至此,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