基于ZooKeeper的Kafka分布式集群搭建与集群启动停止Shell脚本

本文详细介绍了如何在虚拟机环境中使用Kafka3.0.0版本,配合ZooKeeper搭建一个高可用的分布式Kafka集群,包括解压、配置、环境变量设置以及启动/停止集群的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载Kafka压缩包

下方是Kafka官网下载地址,本文使用Kafka 3.0.0在虚拟机环境中搭建分布式集群。
Apache Kafka Downloads link
虽然在Kafka 2.8.0之后可以使用KRaft模式搭建高可用的集群以提高数据处理效率,但是目前还有许多企业依然使用ZooKeeper搭建Kafka集群,所以本文也采用ZooKeeper组件来搭建Kafka分布式集群。
Kafka-3.0.0

基于ZooKeeper的Kafka高可用集群

本文使用三台CentOS7虚拟机分别搭建三个broker节点的Kafka集群。以broker ID为0的节点为例,下方是该节点配置Kafka的具体步骤,另外两个broker节点的配置步骤与其一致。

  1. 解压kafka_2.12-3.0.0.tgz压缩包
tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/
  1. 重命名文件夹名称(可选),注意后面的配置文件也需要根据该名称进行修改。
cd /opt/module
mv kafka_2.12-3.0.0 kafka
  1. 修改/opt/module/kafka/config/server.properties配置文件中最基础的参数配置:第一个是broker节点ID,第二个是topic数据存储路径。
vim server.properties

broker.id=0
log.dirs=/opt/module/kafka/datas
  1. 修改环境变量。
sudo vim /etc/profile.d/my_env.sh

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
  1. 使用source命令刷新环境变量。
source /etc/profile

启动Kafka集群

  1. 启动ZooKeeper。在先前的博客中已介绍过ZooKeeper组件集群的搭建配置方式,并自定义了ZooKeepr集群启动脚本。所以本文直接使用该集群启动脚本zk.sh启动ZooKeeper。其中hadoop102 103 104为三个broker节点的域名。
[hadoop@hadoop102 bin]$ cat zk
#!/bin/bash

case $1 in
"start"){
        for host in hadoop102 hadoop103 hadoop104
        do
                echo ------------ zookeeper $host 启动 ---------------
                ssh $host "/opt/module/zookeeper-3.5.9/bin/zkServer.sh start"
        done
}
;;
"stop"){
        for host in hadoop102 hadoop103 hadoop104
        do
               echo ------------ zookeeper $host 停止 --------------- 
               ssh $host "/opt/module/zookeeper-3.5.9/bin/zkServer.sh stop"
        done
}
;;
"status"){
        for host in hadoop102 hadoop103 hadoop104
        do
               echo ------------ zookeeper $host 状态 --------------- 
               ssh $host "/opt/module/zookeeper-3.5.9/bin/zkServer.sh status"
        done

}
;;
*) echo Not exist the instruction
;;
esac
[hadoop@hadoop102 bin]$ ./zk start
  1. 启动Kafka集群。本文也针对Kafka集群定义了集群启动与停止Shell脚本,所以直接使用该脚本kf.sh启动Kafka集群即可。注意:必须先启动ZooKeeper再启动Kafka集群;在停止集群运行的时候,需要先停止Kafka集群,再停止ZooKeeper服务。
[hadoop@hadoop102 bin]$ cat kf
#!/bin/bash

case $1 in
"start")
	for i in hadoop102 hadoop103 hadoop104
	do
		echo "-- start $i kafka --"
		ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
	done
;;
"stop")
        for i in hadoop102 hadoop103 hadoop104
        do
                echo "-- stop $i kafka --"
                ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh"
        done
;;
esac
[hadoop@hadoop102 bin]$ ./kf start

Kafka集群

Apache Kafka是一个分布式流处理平台,用于构建实时数据管道和流应用。为了管理和操作Kafka集群,通常会编写启动停止脚本来自动化这个过程。以下是创建Kafka集群启动停止脚本的一些基本步骤: **启动脚本(Kafka启动.sh)**: 1. **检查环境**: 确保所有依赖已安装,如Zookeeper、JDK等。 2. **设置环境变量**: 配置Kafka_HOME指向安装目录,设置其他环境变量如KAFKA_OPTS(例如内存限制)。 3. **启动服务**: 使用`bin/kafka-server-start.sh`命令启动Kafka broker节点,可以指定配置文件路径。 4. **日志监控**: 可能还需要添加对日志文件和进程状态的检查。 **停止脚本(Kafka停止.sh)**: 1. **停止服务**: 使用`bin/kafka-server-stop.sh`命令优雅地关闭broker节点。 2. **确认停止**: 检查Kafka是否完全停止,包括清理网络连接和停止后台线程。 3. **清理资源**: 如果有持久化数据,确保它们已经妥善清理。 **例子脚本片段**(假设脚本名为kafka_start_stop.sh): ```bash #!/bin/bash # 启动 start_kafka() { if [ ! -d "$KAFKA_HOME/logs" ]; then mkdir -p $KAFKA_HOME/logs fi export KAFKA_OPTS="-Dlog.dirs=$KAFKA_HOME/logs" echo "Starting Kafka..." bin/kafka-server-start.sh ${KAFKA_CONFIG_DIR}/server.properties & sleep 5 # 等待服务器启动完成 } # 停止 stop_kafka() { echo "Stopping Kafka..." kill $(ps aux | grep kafka-server-start | awk '{print $2}') wait echo "Kafka stopped." } # 脚本控制 case "$1" in start) start_kafka ;; stop) stop_kafka ;; *) echo "Usage: ./kafka_start_stop.sh {start|stop}" exit 1 ;; esac ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值