安装环境
- 操作系统:CentOS Linux release 7.8.2003
- kafka版本:2.4.1
下载地址
http://kafka.apache.org/downloads.html
集群规划
服务器lnh01 | 服务器Lnh02 | 服务器lnh03 |
---|---|---|
zookeeper | zookeeper | zookeeper |
kafka | kafka | kafka |
安装步骤
-
上传压缩包到服务器
-
解压至/opt/soft下
命令:tar -zxvf kafka_2.12-2.4.1.tgz -C /opt/soft/
重新命名为kafka
-
目录结构如下:
-
在/opt/soft/kafka下创建dataLogs目录
-
修改配置文件kafka_home/config/server.properties
#broker的全局唯一编号,和zookeeper的myid一样,保持唯一 broker.id=0 #能够删除topic delete.topic.enable=true #处理网络请求的线程数量 num.network.threads=3 #用来处理磁盘IO的线程数量 num.io.threads=8 #发送套接字的缓冲区大小 socket.send.buffer.bytes=102400 #接收套接字的缓冲区大小 socket.receive.buffer.bytes=102400 #请求套接字的缓冲区大小 socket.request.max.bytes=104857600 #kafka运行日志存放的路径 log.dirs=/opt/soft/kafka/dataLogs #topic在当前broker上的分区个数 num.partitions=1 #用来恢复和清理data下数据的线程数量 num.recovery.threads.per.data.dir=1 #segment文件保留的最长时间,超时将被删除 log.retention.hours=168 #配置连接Zookeeper集群地址 zookeeper.connect=lnh01:2181,lnh02:2181,lnh03:2181
-
配置环境变量
vi /etc/profile
source /etc/profile -
单台kafka配置完成,将解压包分发到另外两台机器
scp -r kafka/ root@lnh02:/opt/soft/
scp -r kafka/ root@lnh03:/opt/soft/ -
修改对应的server.properties文件
把文件中的broker.id分别替换为1和2
-
配置kafka_home
修改 /etc/profile,追加kafka_home到全局PATH中# kafka export KAFKA_HOME=/opt/soft/kafka export PATH=$PATH:$KAFKA_HOME/bin
记得source哦。 source /etc/profile
-
启动集群
[root@lnh01 kafka]# ./bin/kafka-server-start.sh config/server.properties &
[root@lnh02 kafka]# ./bin/kafka-server-start.sh config/server.properties &
[root@lnh03 kafka]# ./bin/kafka-server-start.sh config/server.properties & -
关闭集群
[root@lnh01 kafka]# ./bin/kafka-server-stop.sh stop
[root@lnh02 kafka]# ./bin/kafka-server-stop.sh stop
[root@lnh03 kafka]# ./bin/kafka-server-stop.sh stop -
测试
创建topicbin/kafka-topics.sh --zookeeper lnh01:2181 --create --replication-factor 3 --partitions 1 --topic first
列取所有topic
bin/kafka-topics.sh --zookeeper lnh01:2181 --list
-
群起kafka脚本
#! /bin/bash case $1 in "start"){ for i in lnh01 lnh02 lnh03 do echo " --------启动 $i Kafka-------" ssh $i "/opt/soft/kafka/bin/kafka-server-start.sh -daemon /opt/soft/kafka/config/server.properties " done };; "stop"){ for i in lnh01 lnh02 lnh03 do echo " --------停止 $i Kafka-------" ssh $i "/opt/soft/kafka/bin/kafka-server-stop.sh stop" done };; esac