Kafka集群安装与部署

集群规划

准备工作

安装

安装包下载:链接:https://pan.baidu.com/s/1BtSiaf1ptLKdJiA36CyxJg?pwd=6666

Kafka安装与配置

1、上传并解压安装包

bash 复制代码
tar -zxvf kafka_2.12-3.3.1.tgz -C /opt/moudle/

2、修改解压后的文件名称

bash 复制代码
mv kafka_2.12-3.3.1/ kafka

3、进入到/opt/module/kafka目录,修改配置文件

bash 复制代码
cd /opt/moudle/kafka/config/

vim server.properties

输入以下内容:

bash 复制代码
#broker的全局唯一编号,不能重复,只能是数字。
broker.id=0

#broker对外暴露的IP和端口 (每个节点单独配置)
advertised.listeners=PLAINTEXT://hadoop102:9092
#处理网络请求的线程数量
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/moudle/kafka/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=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka

4、 分发安装包

bash 复制代码
xsync kafka/

5、分别在hadoop103和hadoop104上修改配置文件

/opt/module/kafka/config/server.properties 中的broker.id 及advertised.listeners

注:broker.id不得重复,整个集群中唯一。

root@hadoop103 module\]$ vim kafka/config/server.properties 修改: # The id of the broker. This must be set to a unique integer for each broker. broker.id=1 #broker对外暴露的IP和端口 (每个节点单独配置) advertised.listeners=PLAINTEXT://hadoop103:9092 \[root@hadoop104 module\]$ vim kafka/config/server.properties 修改: # The id of the broker. This must be set to a unique integer for each broker. broker.id=2 #broker对外暴露的IP和端口 (每个节点单独配置) advertised.listeners=PLAINTEXT://hadoop104:9092

6、 配置环境变量

(1)在/etc/profile.d/my_env.sh文件中增加kafka环境变量配置

bash 复制代码
vim /etc/profile.d/my_env.sh

增加如下内容

bash 复制代码
#KAFKA_HOME
export KAFKA_HOME=/opt/moudle/kafka
export PATH=$PATH:$KAFKA_HOME/bin

(2)刷新一下环境变量。

bash 复制代码
source /etc/profile

(3)分发环境变量文件到其他节点,并source。

root@hadoop102 moudle\]$ sudo /home/user/bin/xsync /etc/profile.d/my_env.sh \[root@hadoop103 moudle\]$ source /etc/profile \[root@hadoop104 moudle\]$ source /etc/profile

7 、启动集群

(1)先启动Zookeeper集群,然后启动Kafka。

在Hadoop102上执行

bash 复制代码
zk.sh start

(2)依次在hadoop102、hadoop103、hadoop104节点上启动Kafka。

进入/opt/moudle/kafka

bash 复制代码
bin/kafka-server-start.sh -daemon config/server.properties

注意:配置文件的路径要能够到server.properties。

(3)查看进程

bash 复制代码
xcall jps

8 、关闭集群

(1)依次在hadoop102、hadoop103、hadoop104节点上停止Kafka。

/opt/moudle/kafka

bash 复制代码
bin/kafka-server-stop.sh

(2)查看进程

bash 复制代码
xcall jps

集群启停脚本

1 )在/home/user/bin 目录下创建文件kf.sh 脚本文件

bash 复制代码
cd /home/user/bin

vim kf.sh

脚本如下:

bash 复制代码
#! /bin/bash

case $1 in
"start"){
    for i in hadoop102 hadoop103 hadoop104
    do
        echo " --------启动 $i Kafka-------"
        ssh $i "/opt/moudle/kafka/bin/kafka-server-start.sh -daemon /opt/moudle/kafka/config/server.properties"
    done
};;
"stop"){
    for i in hadoop102 hadoop103 hadoop104
    do
        echo " --------停止 $i Kafka-------"
        ssh $i "/opt/moudle/kafka/bin/kafka-server-stop.sh "
    done
};;
esac

2 )添加执行权限

bash 复制代码
chmod +x kf.sh

3 )启动集群命令

bash 复制代码
kf.sh start

4 )停止集群命令

bash 复制代码
kf.sh stop

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

相关推荐
richard_yuu37 分钟前
工控场景落地|分布式协调与动态重配置管理,如何实现产线不停机升级?
分布式
Devin~Y38 分钟前
互联网大厂Java面试:Spring Boot/Redis/Kafka/K8s 可观测 + RAG(向量检索/Agent)三轮追问实录
java·spring boot·redis·kafka·kubernetes·spring mvc·webflux
MoFe11 小时前
【.net core】【RabbitMq】rabbitmq在.net core中的简单使用
分布式·rabbitmq·.netcore
路飞说AI1 小时前
Kafka消息不丢失全攻略
kafka
何中应1 小时前
在windows本地部署RabbitMQ
分布式·消息队列·rabbitmq
Wild API2 小时前
按任务轻重做模型分流的实战思路
分布式·微服务·架构
落子君2 小时前
kafka接受消息
kafka
下地种菜小叶3 小时前
接口幂等怎么设计?一次讲清重复提交、支付回调、幂等键与防重落地方案
java·spring boot·spring·kafka·maven
低客的黑调3 小时前
RabbitMQ-从入门到生产落地
分布式·rabbitmq
宸津-代码粉碎机3 小时前
Spring Boot 4.0虚拟线程实战续更预告:高阶技巧、监控排查与分布式场景落地指南
java·大数据·spring boot·分布式·后端·python