Kafka集群的安装与部署

文章目录


安装Kafka之前需要安装好zookeeper

1、上传、解压、重命名

bash 复制代码
# 上传
cd /opt/modules
# 解压(kafka中 2.12 是scala语言的版本,3.0.0是kafka版本)
tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/installs/
# 重命名
cd /opt/installs
mv kafka_2.12-3.0.0/ kafka3

2、修改配置文件

bash 复制代码
# 修改 server.properties 配置文件:
cd /opt/installs/kafka3/config
vi server.properties

只修改下面两个参数即可:

bash 复制代码
#broker 的全局唯一编号,不能重复,只能是数字。 
broker.id=0 
#kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔 
log.dirs=/opt/installs/kafka3/datas 

下面是参数解释:

bash 复制代码
#broker 的全局唯一编号,不能重复,只能是数字。 
broker.id=0 
#处理网络请求的线程数量 
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 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔 
log.dirs=/opt/installs/kafka3/datas 
#topic 在当前 broker 上的分区个数 
num.partitions=1 
#用来恢复和清理 data 下数据的线程数量 
num.recovery.threads.per.data.dir=1 
# 每个 topic 创建时的副本数,默认时 1 个副本 
offsets.topic.replication.factor=1 
#segment 文件保留的最长时间,超时将被删除 
log.retention.hours=168 
#每个 segment 文件的大小,默认最大 1G 
log.segment.bytes=1073741824
# 检查过期数据的时间,默认 5 分钟检查一次是否数据过期 
log.retention.check.interval.ms=300000 
#配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理) 
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181/kafka
# kafka的意思是:在zk中创建一个文件夹叫做kafka

3、配置环境变量

vim /etc/profile

bash 复制代码
export KAFKA_HOME=/opt/installs/kafka3
export PATH=$PATH:$KAFKA_HOME/bin

#刷新环境变量
source /etc/profile 

4、分发安装包和环境变量

分发脚本可以参考文章:
大数据集群搭建以及使用过程中几个实用的shell脚本

bash 复制代码
# 使用分发脚本
# 分发安装包
xsync.sh kafka3/
# 分发环境变量
xsync.sh /etc/profile
# 并且其他节点也需要刷新环境变量

5、修改其他节点的 broker.id

分别在 node02 和 node03上修改配置文件/opt/installs/kafka/config/server.properties 中的 broker.id=1、broker.id=2
broker.id 不得重复,整个集群中唯一

6、启动集群

这里使用的是zookeeper启动脚本:

参考文章:
大数据集群搭建以及使用过程中几个实用的shell脚本

bash 复制代码
# 先启动zookeeper
zk.sh start
# 再启动 Kafka(三台节点都需要启动)
kafka-server-start.sh -daemon config/server.properties

7、Kafka集群启停脚本

Kafka启动时很麻烦,所以编写启动脚本:

在/usr/local/sbin 目录下创建文件 kf.sh 脚本文件

bash 复制代码
#! /bin/bash
case $1 in
"start"){
 for i in node01 node02 node03
 do
 echo " --------启动 $i Kafka-------"
 ssh $i "source /etc/profile; /opt/installs/kafka3/bin/kafka-server-start.sh -daemon /opt/installs/kafka3/config/server.properties"
 done
};;
"stop"){
 for i in node01 node02 node03
 do
 echo " --------停止 $i Kafka-------"
 ssh $i "source /etc/profile; /opt/installs/kafka3/bin/kafka-server-stop.sh"
 done
};;
esac

添加权限

bash 复制代码
chmod u+x kf.sh

如何使用:

bash 复制代码
kf.sh start
kf.sh stop

8、注意

启动时:先启动zookeeper,再启动Kafka
停止时:先停止Kafka,再停止zookeeper

停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper 集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止, Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。

相关推荐
Edingbrugh.南空19 分钟前
Flink Postgres CDC 环境配置与验证
大数据·flink
isNotNullX1 小时前
什么是数据分析?常见方法全解析
大数据·数据库·数据仓库·人工智能·数据分析
小袁拒绝摆烂1 小时前
ElasticSearch快速入门-1
大数据·elasticsearch·搜索引擎
一路向北North2 小时前
使用reactor-rabbitmq库监听Rabbitmq
分布式·rabbitmq·ruby
点控云2 小时前
智能私域运营中枢:从客户视角看 SCRM 的体验革新与价值重构
大数据·人工智能·科技·重构·外呼系统·呼叫中心
zkmall3 小时前
企业电商解决方案哪家好?ZKmall模块商城全渠道支持 + 定制化服务更省心
大数据·运维·重构·架构·开源
随缘而动,随遇而安7 小时前
第八十八篇 大数据中的递归算法:从俄罗斯套娃到分布式计算的奇妙之旅
大数据·数据结构·算法
Amy187021118237 小时前
赋能低压分布式光伏“四可”建设,筑牢电网安全新防线
分布式
GISer_Jing8 小时前
Git协作开发:feature分支、拉取最新并合并
大数据·git·elasticsearch
IT_10249 小时前
Spring Boot项目开发实战销售管理系统——系统设计!
大数据·spring boot·后端