windows单机环境下kafka的搭建及配置

1、kafka简介

1.1 介绍

    Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。
    1.发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因
    2.以容错的方式记录消息流,kafka以文件的方式来存储消息流
    3.可以再消息发布的时候进行处理

1.2 使用场景

    在系统或应用程序之间构建可靠的用于传输实时数据的管道,消息队列功能
    构建实时的流数据处理程序来变换或处理数据流,数据处理功能

1.3 详细介绍

 Kafka 专用术语
    Broker:Kafka 集群包含一个或多个服务器,这种服务器被称为 broker。
    Topic:每条发布到 Kafka 集群的消息都有一个类别,这个类别被称为 Topic。(物理上不同 Topic 的消息分开存储,逻辑上一个 Topic 的消息虽然保存于一个或多个 broker 上,但用户只需指定消息的 Topic 即可生产或消费数据而不必关心数据存于何处)。
    Partition:Partition 是物理上的概念,每个 Topic 包含一个或多个 Partition。
    Producer:负责发布消息到 Kafka broker。
    Consumer:消息消费者,向 Kafka broker 读取消息的客户端。
    Consumer Group:每个 Consumer 属于一个特定的 Consumer Group(可为每个 Consumer 指定 group name,若不指定 group name 则属于默认的 group)。

    Kafka 是一个基于分布式的消息发布-订阅系统,它被设计成快速、可扩展的、持久的。与其他消息发布-订阅系统类似,Kafka 在主题当中保存消息的信息。生产者向主题写入数据,消费者从主题读取数据。由于 Kafka 的特性是支持分布式,同时也是基于分布式的,所以主题也是可以在多个节点上被分区和覆盖的。

2、环境

内容 版本号
系统版本 windows10
JDK 1.8.0_201
kafka 2.12-2.1.1
zookeeper 3.4.13

3、安装

3.1 JDK安装

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
具体安装过程可百度

3.2 Zookeeper安装

下载地址:https://zookeeper.apache.org/releases.html
1、下载后,解压放在目录F:\bigdata(本文所用的目录)下,关于zookeeper以及kafka的目录,路径中最好不要出现空格,比如D:\Program Files,尽量别用,运行脚本时会有问题。
2、进入zookeeper的相关设置所在的文件目录,例如本文的:D:\bigdata\zookeeper-3.4.13\conf
3、将"zoo_sample.cfg"重命名为"zoo.cfg"
4、打开zoo.cfg(至于使用什么编辑器,根据自己喜好选即可),找到并编辑:
dataDir=/tmp/zookeeper 改为 F:/bigdata/zookeeper-3.4.13/data或 F:\bigdata\zookeeper-3.4.13\data(路径仅为示例,具体可根据需要配置)
这里注意,路径要么是"/“分割,要么是转义字符”\",这样才是正确的路径(层级,子目录)。
5、在系统环境变量中添加:
系统变量中添加ZOOKEEPER_HOME=D:\bigdata\zookeeper-3.4.13
windows单机环境下kafka的搭建及配置
编辑系统变量中的path变量,增加%ZOOKEEPER_HOME%\bin
windows单机环境下kafka的搭建及配置
6.在zoo.cfg文件中修改默认的Zookeeper端口(默认端口2181)
配置文件如下

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=F:/bigdata/zookeeper-3.4.13/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

打开cmd窗口,输入zkserver,运行Zookeeper,运行结果如下:
windows单机环境下kafka的搭建及配置
恭喜,Zookeeper已经安装完成,已在2181端口运行。

3.3 Kafka安装

下载地址:http://kafka.apache.org/downloads
下载Binary downloads这个类型。下载后,解压放在F:\bigdata目录下。
1、进入kafka配置文件所在目录,F:\bigdata\kafka_2.12-2.1.1\config
2、编辑文件"server.properties",找到并编辑:
log.dirs=/tmp/kafka-logs 改为 log.dirs=F:/bigdata/kafka_2.12-2.1.1/logs
注意事项:log.dirs不能跟安装目录一样,否则会报错。路径要么是"/“分割,要么是转义字符”\",这样会生成正确的路径(层级,子目录)。
3、在server.properties文件中,zookeeper.connect=localhost:2181代表kafka所连接的zookeeper所在的服务器IP以及端口,可根据需要更改。本文在同一台机器上使用,故不用修改。
4、kafka会按照默认配置,在9092端口上运行,并连接zookeeper的默认端口2181

4、运行测试

提示:请确保启动kafka服务器前,Zookeeper实例已经在运行,因为kafka的运行是需要zookeeper这种分布式应用程序协调服务。
1、进入kafka安装目录F:\bigdata\kafka_2.12-2.1.1
2、按下shift+鼠标右键,选择"在此处打开命令窗口",打开命令行。
3、在命令行中输入:.\bin\windows\kafka-server-start.bat .\config\server.properties 回车。
到目前为止,zookeeper以及kafka都已正确运行。保持运行状态,不要关闭。

4.1 创建主题

创建主题,命名为"demo",replicationfactor=1(因为只有一个kafka服务器在运行)。可根据集群中kafka服务器个数来修改replicationfactor的数量,以便提高系统容错性等。
进入kafka安装目录F:\bigdata\kafka_2.12-2.1.1目录下打开新的命令行窗口
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo
提示返回:Created topic “test”.
查看创建的topic
bin\windows\kafka-topics.bat --list --zookeeper localhost:2181

4.2 创建生产者

启动生产者 producer
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic demo

4.3 创建消费者

启动消费者 customer
bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic demo --from-beginning
无法启动
kafka版本1.2.2后,启动消费者命令变为:
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic demo
windows单机环境下kafka的搭建及配置

4.4 删除会话topic

bin\windows\kafka-topics.bat --delete --topic demo --zookeeper localhost:2181
再使用命令查看
bin\windows\kafka-topics.bat --list --zookeeper localhost:2181

5、补充

Kafka日志及Topic数据清理:https://www.cnblogs.com/moonandstar08/p/6204581.html