1.环境
centos 版本:Linux version 3.10.0-693.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org)
kafka 版本:kafka_2.12-2.4.0
2.前提
已经安装了jdk
3.下载 kafka
3.1.访问 kafka 官网:http://kafka.apache.org/downloads
3.2.选择版本
进入上述官网下载页后,最上面的就是最新版本,往下翻可以看到历史版本。本例中以当前最新的 2.4.0 为例。选择 binary 文件中推荐的 scala 版本,点击进入:
3.3.进入后,复制推荐的镜像地址,然后到 centos 中使用 wget 下载即可
4.解压
将安装包复制到需要安装的目录,并解压:
tar -xzvf kafka_2.12-2.4.0.tgz
由于下载的是二进制包,所以解压后就算是安装好了,无需编译。
5.启动
5.1.启动 zookeeper
kafka 在设计上就是依赖于 zookeeper 的,所以启动 kafka 前需要启动 zookeeper。依赖 zookeeper 有两种选择:使用独立的 zookeeper 和 使用 kafka 自带的 zookeeper(高版本的 kafka 已经自带了 zookeeper)。如果使用独立的 zookeeper,就需要修改 kafka 安装目录下的 config/server.properties 文件中的 zookeeper.connect 配置项(zookeeper 对外服务地址)。本例中使用自带的 zookeeper。
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties >> zookeeper.nohup &
检查 zookeeper 进程是否已经启动:ps -ef|grep zookeeper
5.2.启动 kafka
nohup ./bin/kafka-server-start.sh config/server.properties >> kafka.nohup &
报错了:
报错原因不知道,但是升级 jdk 就好了,我将 jdk 从 jdk1.8.0_11 到 jdk1.8.0_231 就不报错了,有些博友说升级到 jdk1.8.0_212 就可以。
6.创建 topic
创建一个名为 test 的 topic,只有一个 副本,一个分区:
sh bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看已经创建的 topic:
sh bin/kafka-topics.sh -list -zookeeper localhost:2181
结果显示 topic 已经存在
7.验证
7.1. 启动 producer
sh bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
7.2.启动 consumer,在另一个终端窗口执行
sh bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
7.3.从 producer 终端窗口发送消息,并查看 consumer 窗口的输出,结果如下
producer窗口:
consumer 窗口:
验证通过,安装成功。
8. client 在外网连接的话,请参考: