Kafka集群部署
1 准备
- zookeeper 集群(1 leader,1 follower,1 observer) https://blog.csdn.net/qq_27242695/article/details/120206741
- 虚拟机centos7: CentOS-7-x86_64-DVD-2009.iso
- kafka版本:kafka_2.13-2.7.0.tgz http://kafka.apache.org/downloads
- jdk 1.8 https://blog.csdn.net/qq_27242695/article/details/111386165
- 服务器三台:flink1,flink2,flink3(服务器配置别名,id)
- 三台服务器配置免登录系统
- 三台服务器配置文件传输脚本:xsync
2 集群部署
2.1 部署规划
服务器 | flink1 | flink2 | flink3 |
---|---|---|---|
zookeeper | zookeeper | zookeeper(observer) | |
kafka | kafka | kafka |
2.2 上传
上传操作略
2.3 解压
# 解压到指令目录
[develop@flink1 software]$ tar -zxvf kafka_2.13-2.7.0.tgz -C /opt/module/
[develop@flink1 software]$ ls /opt/module/
apache-zookeeper-3.5.9-bin flink-1.10.0 jdk1.8.0_301 kafka_2.13-2.7.0
2.4 集群配置
2.4.1 文件配置
- 在pt/module/kafka_2.13-2.7.0下创建logs文件
mdkir /opt/module/kafka_2.13-2.7.0/logs
- 修改server.properties配置文件
#broker 的全局唯一编号,不能重复
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/module/kafka/logs
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接 Zookeeper 集群地址
zookeeper.connect=flink1:2181,flink2:2181,flink3:2181
- 配置环境变量
root 用户操作,/etc/profile.d/目录创建my_kafka.sh编辑
[root@flink1 profile.d]# vim my_kafka.sh
export KAFKA_HOME=/opt/module/kafka_2.13-2.7.0
export PATH=$PATH:$KAFKA_HOME/bin
[root@flink1 profile.d]# source /etc/profile
- 分发安装包
[develop@flink1 profile.d]$ xsync /opt/module/kafka_2.13-2.7.0/
- 分别在 flink2 和 flink3 上修改配置文件/opt/module/kafka_2.13-2.7.0/config/server.properties
中的 broker.id=1、broker.id=2 注:broker.id 不得重复
2.4.2 编写集群启停脚本
/home/develop/bin目录下创建kafka-cluster.sh
#!/bin/bash
if [ $# -lt 1 ]; then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 kafka 集群 ==================="
for i in flink1 flink2 flink3
do
echo " =================== $i ==================="
ssh $i "/opt/module/kafka_2.13-2.7.0/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.13-2.7.0/config/server.properties"
done
;;
"stop")
echo " =================== 关闭 kafka 集群 ==================="
for i in flink1 flink2 flink3
do
echo " =================== $i ==================="
ssh $i "/opt/module/kafka_2.13-2.7.0/bin/kafka-server-stop.sh"
done
;;
*)
echo "Input Args Error..."
;;
esac
2.4.3 启动关闭
# 启动
[develop@flink1 ~]$ kafka-cluster.sh start
# 关闭
[develop@flink1 ~]$ kafka-cluster.sh stop