目录
一、前提
安装Kafka之前,需要安装JDK、Zookeeper、Scala,
本次安装版本选择:
JDK:1.8
Zookeeper:3.6.4
Scala:2.12
Kafka:3.5.2
1、jdk
见jdk下载安装。
2、Zookeeper
下载地址
下载后安装:
2.1、解压
进入到解压后的文件查看:
2.2、创建data文件夹
2.3、配置文件
(1)进入config目录 ,复制zoo_sample.cfg文件,改名为zoo.cfg,更改zoo_sample.cfg
文件名为 zoo.cfg
的原因为:安装的bin目录下的 zkEnv.cmd
文件内指定了使用 zoo.cfg
文件。
(若不更改zoo_sample.cfg
文件名,也可直接把此文件中的 zoo.cfg
更改为 zoo_sample.cfg
)
(2)修改配置文件 zoo.cfg:
把dataDir=/tmp/zookeeper
修改为:
dataDir=D:\\javas\\zk\\apache-zookeeper-3.6.4-bin\\data
注意:此处的路径一定要使用双斜杠" \ ",如果是单斜杠,在启动服务端时会把配置的内容输出到 bin 目录下面)
2.4、添加环境变量
①新建环境变量
点击确定
②将新建的环境变量添加到系统变量path中
2.5、启动zk:zkServer
以管理员权限打开cmd命令窗口,输入
zkServer
或者进入到 bin
目录,双击 zkServer.cmd:
2.6、客户端
客户端连接Zookeeper:zkCli,
以管理员权限打开命令窗口,输入:zkCli
3、Scala
3.1、下载安装
下载地址:https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.msi
下载后按照提示一步步安装,如我安装在
3.2、配置环境变量
(1)新增环境变量%SCALA_HOME%
(2)%SCALA_HOME%\bin添加到path中
3.3、验证是否安装成功
cmd输入:Scala
二、kafka下载安装
version:2.12-3.5.2,表示Scala版本是2.12,Kafka版本是基于此的3.5.2版本。
1、下载
官网下载地址:Index of /kafka/3.5.2 (apache.org)
2、安装
2.1、解压
如我解压到D:\javas\kafka\kafka_2.12-3.5.2
2.2、新建logs目录
2.3、修改配置文件
修改Kafka配置文件 server.properties
文件路径:D:\javas\kafka\kafka_2.12-3.5.2\config\server.properties
2.3.1、修改 log.dirs 参数
修改 log.dirs 参数值,修改成上一步新建的logs文件夹。注意文件夹路径中是双左斜杠
log.dirs=D:\\javas\\kafka\\kafka_2.12-3.5.2\\logs
2.3.2、修改 listeners 参数
listeners=PLAINTEXT://localhost:9092
3、启动
(1)启动zk:
由于Kafka依赖于Zookeeper,所以要先启动Zookeeper,cmd输入zkServer即可启动zk。
(2)启动kafka:
管理员权限打开命令窗口,进入到Kafka安装目录(D:\javas\kafka\kafka_2.12-3.5.2)。
输入如下命令启动Kafka服务:
.\bin\windows\kafka-server-start.bat .\config\server.properties
4、kafka操作
Kafka2.2之后版本中使用–zookeeper hadoop01:2181会出现报错情况,2.2之后的版本使用了–bootstrap-server hadoop01:9092来替换–zookeeper hadoop01:2181。
以下命令均在D:\javas\kafka\kafka_2.12-3.5.2\bin\windows目录下:
4.1、创建topic
cmd打开一个新窗口:
kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
4.2、查看topic列表
kafka-topics.bat --bootstrap-server localhost:9092 --list
4.3、创建生产者
cmd打开一个新窗口
kafka-console-producer.bat --broker-list localhost:9092 --topic test
4.4、创建消费者
cmd打开一个新窗口
4.5、测试收发消息
(1)在producer(生产者)控制台窗口输入消息:
(2)在consumer(消费者)控制台窗口查看消息:
注意:收不到消息,常见情况
- 在consumer没有打开之前,就在producer里面发送了消息
- producer和consumer使用的topic不一致
4.6、修改topic
(1)修改分区数
D:\javas\kafka\kafka_2.12-3.5.2\bin\windows>
kafka-topics.bat --bootstrap-server localhost:9092 --alter --topic userTest--partitions 3
(2)修改副本数
修改replication-factor
的值是有条件的,因为它必须小于等于你集群中broker的数量。如果你尝试设置一个大于当前broker数量的replication-factor
,操作将会失败。
同样在windows目录下执行
kafka-topics.bat --bootstrap-server localhost:9092 --alter --topic userTest--partitions 3 --replication-factor 2
三、kafka manager控制台
为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:
1.管理多个kafka集群
2.便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)
3.选择你要运行的副本
4.基于当前分区状况进行
5.可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)
6.删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)
7.Topic list会指明哪些topic被删除(在0.8.2以上版本适用)
8.为已存在的topic增加分区
9.为已存在的topic更新配置
10.在多个topic上批量重分区
11.在多个topic上批量重分区(可选partition broker位置)
https://github.com/yahoo/kafka-manager
下载kafka-manager的releases中的最新zip版本: https://github.com/yahoo/kafka-manager/releases