首页 > 技术文章 > windows环境安装kafka

jiangcong 2020-11-11 23:52 原文

本文简要介绍如何在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

 

推荐阅读