本教程主要用于CentOS7操作系统如何安装配置Kafka集群,非Docker版本教程。
一. 下载
访问官网下载页面下载
这里下载kafka_2.13-3.2.0版本
$ wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz --no-check-certificate
$ tar zxf kafka_2.13-3.2.0.tgz
解压后可以看到kafka_2.13-3.2.0
文件夹
二. Java环境依赖
需要有JAVA环境,可以参考《CentOS7安装部署JDK》文章说明。
PS: 需要JDK1.8环境
三. zookeeper环境依赖
需要有zookeeper环境,可以参考《CentOS7安装部署最新Zookeeper3.8.0集群》文章说明。
四. 部署
4.1 说明
部署在3台机器上面,如果没机器,1台机器也可以。
下面对三台机器进行操作,并创建日志目录
- 机器1
$ cp -rf kafka_2.13-3.2.0 kafka_2.13-3.2.0-19091
$ mkdir ~/kafka
$ mv kafka_2.13-3.2.0-19091 ~/kafka
$ mkdir ~/kafka/logskafka
- 机器2
$ cp -rf kafka_2.13-3.2.0 kafka_2.13-3.2.0-19092
$ mkdir ~/kafka
$ mv kafka_2.13-3.2.0-19092 ~/kafka
$ mkdir ~/kafka/logskafka
- 机器3
$ cp -rf kafka_2.13-3.2.0 kafka_2.13-3.2.0-19093
$ mkdir ~/kafka
$ mv kafka_2.13-3.2.0-19093 ~/kafka
$ mkdir ~/kafka/logskafka
4.2 配置文件进行配置
- 机器1进入kafka目录
$ vim config/server.properties
# 每个节点值不一样
broker.id=21
# 端口地址
port=19091
#配置当前主机hostname,也可以IP
host.name=10.10.10.11
#在配置集群的时候,必须设置
listeners = PLAINTEXT://10.10.10.11:19091
#配置对应的zookeepr地址
zookeeper.connect=10.10.10.10:15001,10.10.10.10:15002,10.10.10.10:15003
#存放log目录
log.dirs=/opt/testerzhang/kafka/logskafka
- 机器2进入kafka目录
$ vim config/server.properties
# 每个节点值不一样
broker.id=22
# 端口地址
port=19092
#配置当前主机hostname,也可以IP
host.name=10.10.10.12
#在配置集群的时候,必须设置
listeners = PLAINTEXT://10.10.10.12:19092
#配置对应的zookeepr地址
zookeeper.connect=10.10.10.10:15001,10.10.10.10:15002,10.10.10.10:15003
#存放log目录
log.dirs=/opt/testerzhang/kafka/logskafka
- 机器3进入kafka目录
$ vim config/server.properties
# 每个节点值不一样
broker.id=23
# 端口地址
port=19093
#配置当前主机hostname,也可以IP
host.name=10.10.10.13
#在配置集群的时候,必须设置
listeners = PLAINTEXT://10.10.10.13:19093
#配置对应的zookeepr地址
zookeeper.connect=10.10.10.10:15001,10.10.10.10:15002,10.10.10.10:15003
#存放log目录
log.dirs=/opt/testerzhang/kafka/logskafka
五.启动
- 机器1
$ cd /opt/testerzhang/kafka/kafka_2.13-3.2.0-19091/bin
$ nohup sh ./kafka-server-start.sh ../config/server.properties &
- 机器2
$ cd /opt/testerzhang/kafka/kafka_2.13-3.2.0-19092/bin
$ nohup sh ./kafka-server-start.sh ../config/server.properties &
- 机器3
$ cd /opt/testerzhang/kafka/kafka_2.13-3.2.0-19093/bin
$ nohup sh ./kafka-server-start.sh ../config/server.properties &
写个杀进程脚本,仅供参考
ps -ef|grep "kafka_2.13-3.2.0-1909"|grep -v grep|awk '{print $2}'|xargs kill -9
六.验证
新版不需要zookeeper来操作,所以命令行更方便操作。
- 创建topic(3分区,2副本)
$ cd ~/kafka/kafka_2.13-3.2.0-19091
$ bin/kafka-topics.sh --create --bootstrap-server 10.10.10.11:19091 --replication-factor 2 --partitions 3 --topic test
Created topic test.
- 查询所有主题
$ bin/kafka-topics.sh --bootstrap-server 10.10.10.11:19091 --describe
Topic: test TopicId: OZ_tonUcRUCpOJbjIQwaoQ PartitionCount: 3 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: test Partition: 0 Leader: 22 Replicas: 22,21 Isr: 22,21
Topic: test Partition: 1 Leader: 21 Replicas: 21,23 Isr: 21,23
Topic: test Partition: 2 Leader: 23 Replicas: 23,22 Isr: 23,22
- 查询指定主题
$ bin/kafka-topics.sh --bootstrap-server 10.10.10.11:19091 --describe --topic test
Topic: test TopicId: OZ_tonUcRUCpOJbjIQwaoQ PartitionCount: 3 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: test Partition: 0 Leader: 22 Replicas: 22,21 Isr: 22,21
Topic: test Partition: 1 Leader: 21 Replicas: 21,23 Isr: 21,23
Topic: test Partition: 2 Leader: 23 Replicas: 23,22 Isr: 23,22
- 生产消息
$ bin/kafka-console-producer.sh --bootstrap-server 10.10.10.11:19091 --topic test
>hello world
>testerzhang
- 消费消息(包括历史消息)
$ bin/kafka-console-consumer.sh --bootstrap-server 172.17.102.31:19091 --topic test --from-beginning
testerzhang
hello world
- 消费消息(不包括历史消息)
$ bin/kafka-console-consumer.sh --bootstrap-server 172.17.102.31:19091 --topic test
newmsg1
newmsg2
- 修改分区数(分区数改为4)
$ bin/kafka-topics.sh --bootstrap-server 172.17.102.31:19091 --alter --topic test --partitions 4
- 删除topic
$ bin/kafka-topics.sh --bootstrap-server 172.17.102.31:19091 --delete --topic test
本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!
欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。