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 进程了。

相关推荐
TDengine (老段)14 小时前
TDengine 数学函数 DEGRESS 用户手册
大数据·数据库·sql·物联网·时序数据库·iot·tdengine
TDengine (老段)14 小时前
TDengine 数学函数 GREATEST 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
失散1315 小时前
分布式专题——47 ElasticSearch搜索相关性详解
java·分布式·elasticsearch·架构
酷ku的森15 小时前
RabbitMQ七种工作模式介绍:
分布式·rabbitmq
字节数据平台15 小时前
火山引擎Data Agent再拓新场景,重磅推出用户研究Agent
大数据·人工智能·火山引擎
qqxhb16 小时前
系统架构设计师备考第45天——软件架构演化评估方法和维护
分布式·缓存·系统架构·集群·cdn·单体·已知未知评估
默 语16 小时前
消息中间件选型的艺术:如何在RocketMQ、Kafka、RabbitMQ中做出正确决策
java·架构·kafka·消息队列·rabbitmq·rocketmq·技术选型
心之伊始17 小时前
RocketMQ 与 Kafka 架构与实现详解对比
架构·kafka·rocketmq
铭毅天下18 小时前
Elasticsearch 到 Easysearch 数据迁移 5 种方案选型实战总结
大数据·elasticsearch·搜索引擎·全文检索
跨境小新18 小时前
Facebook广告投放:地域定向流量不精准?x个优化指南
大数据·facebook