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

news2024/11/20 10:24:17

下载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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1566846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++中的List容器用法详解

文章目录 C中的List容器用法详解List 的特点List 的重要接口用法介绍1.创建和初始化Listlist 2.插入元素push_backpush_forntinsert 删除元素pop_backpop_fontclearerase 遍历List迭代器遍历范围for遍历 排序Listsort 反转Listreverse 转移Listsplice 去重unique 合并merge 总结…

wordpress课程项目主题电脑版+手机版自适应

这款主题适合做资源、课程、素材等,演示站:点击查看

​网络socket编程(二)——面向流的TCP编程及测试(SocketTool)、Wireshark软件使用

目录 一、书接上回(select()函数使用注意事项) 二、面向流(TCP)的socket编程 2.1 TCP服务端编程和测试 2.1.1 TCP服务器原理流程图 2.1.2 TCP服务端编程实战 2.1.3 测试 2.2 TCP客户端编程和测试 三、Wireshark抓包软件的使用 3.1 Wireshark是什…

fastlio2 给 interactive-slam 保存每帧的点云和每帧的里程计为单独的文件做后端回环优化和手动回环优化

为了给 interactive-slam 提供数据做后端回环优化和手动回环优化,需要保存每帧的点云和每帧的里程计为单独的文件,并且需要保存的名字为ros时间戳。 效果很好,比我自己写的手动回环模块好用 // This is an advanced implementation of the algorithm described in the // fo…

Jmeter各组件超详细介绍

1、JMeter和Loadrunner的区别? 2、JMeter如何开发脚本的?强化脚本的技术? 代理服务器录制脚本,Fiddler录制脚本,Badboy录制脚本,根据API,手写脚本,根据抓包,手写脚本。 …

Twitter Api查询用户粉丝列表

如果大家为了获取实现方式代码的话可能要让大家失望了,这边文章主要是为了节省大家开发时间,少点坑。https://api.twitter.com/2/users/:id/followers ,这个接口很熟悉吧,他是推特提供的获取用户关注者(粉丝&#xff0…

目标跟踪——行人车辆数据集

一、重要性及意义 首先,目标跟踪对于个人和组织的目标实现至关重要。无论是个人职业发展、企业业务增长还是政府的社会发展,目标跟踪都能够帮助我们明确目标,并将其分解为可行的步骤和时间表。这有助于我们保持动力和专注,提高效…

CNAS软件测试公司有什么好处?如何选择靠谱的软件测试公司?

CNAS认可是中国合格评定国家认可委员会的英文缩写,由国家认证认可监督管理委员会批准设立并授权的国家认可机构,统一负责对认证机构、实验室和检验机构等相关机构的认可工作。 在软件测试行业,CNAS认可具有重要意义。它标志着一个软件测试公…

Java并发编程基础面试题详细总结

1. 什么是线程和进程? 1.1 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个…

Failed to resolve import “Home/components/HomeNew.vue“. Does the file exist?

错误信息 [plugin:vite:import-analysis] Failed to resolve import "/apis/home.js" from "src/views/Home/components/HomeNew.vue". Does the file exist? 错误原因 路径错误 解决方法

[C#]使用OpencvSharp去除面积较小的连通域

【C介绍】 关于opencv实现有比较好的算法,可以参考这个博客OpenCV去除面积较小的连通域_c#opencv 筛选小面积区域-CSDN博客 但是没有对应opencvsharp实现同类算法,为了照顾懂C#编程同学们,因此将 去除面积较小的连通域算法转成C#代码。 方…

Open CASCADE学习|刚体( TopoDS_Shape)按某种轨迹运动,停在指定位置上

今天实现如下功能:刚体做做螺旋运动,轨迹已知,求刚体在每个位置上的所占据的空间,就是把刚体从初始位置变换到该位置。 这里的刚体是一个砂轮截面,螺旋运动轨迹由B样条曲线拟合,通过Frenet标架确定运动轨迹…

Spring Boot集成AJ-Captcha实现滑动验证码功能

1.AJ-Captcha介绍 行为验证码 采用嵌入式集成方式,接入方便,安全,高效。抛弃了传统字符型验证码展示-填写字符-比对答案的流程,采用验证码展示-采集用户行为-分析用户行为流程,用户只需要产生指定的行为轨迹&#xff0…

WPS二次开发系列:如何获取应用签名SHA256值

在申请WPS SDK授权版时候需要开发者提供应用包名和签名,应用包名好说,那如何生成符合WPS要求的应用签名(SHA256)呢,经笔者亲测,有如下两种方式可以实现获取第三方应用签名值(SHA256) 1. 方法一&…

springboot对接minio的webhook全过程

前言 近日需要将minio的apache2.0版本给用起来,顺便要完善一下原有的文件上传管理系统,其中很重要的一点是,在原有客户端直传的基础上,再添加 minio 的上传回调给服务端做后续处理。 本文重点在于,介绍整个minio与spr…

SpringCloud学习(1)-consul

consul下载安装及使用 1.consul简介 Consul是一种开源的、分布式的服务发现和配置管理工具,能够帮助开发人员构建和管理现代化的分布式系统。它提供了一套完整的功能,包括服务注册与发现、健康检查、KV存储、多数据中心支持等,可以帮助开发人…

Jenkins--任务详解

一、任务类型 Jenkins的主要功能的实现是由执行任务去完成的,常用的任务类型主要有以下三种: 自由风格任务(Free Style Project): 这是Jenkins中最常用的任务类型,允许你自定义各种构建步骤和配置选项,如源码管理、构建触发器、…

vue3+echarts:echarts地图打点显示的样式

colorStops是打点的颜色和呼吸灯、label为show是打点是否显示数据、rich里cnNum是自定义的过滤模板用来改写显示数据的样式 series: [{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: &quo…

Redis的值有5种数据结构,不同数据结构的使用场景是什么?

文章目录 字符串缓存计数共享Session限速 哈希缓存 列表消息队列文章列表栈队列有限集合 集合标签抽奖社交需求 有序集合排行榜系统 字符串 缓存 (1)使用原生字符类型缓存 优点:简单直观,每个属性都支持更新操作 缺点&#xff1…

大话设计模式之状态模式

状态模式是一种行为设计模式,它允许对象在其内部状态发生变化时改变其行为。在状态模式中,对象将其行为委托给当前状态对象,从而在不同的状态下执行不同的行为,而不必在对象自身的代码中包含大量的条件语句。 通常,状…