【大数据之Kafka】十五、Kafka-Kraft模式

news2024/9/30 17:33:07

1 Kafka-Kraft架构

在这里插入图片描述
  左图为 Kafka 现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。
  右图为 kraft 模式架构(实验性),不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直接进行 Kafka 集群管理。

好处:
  (1)Kafka 不再依赖外部框架,而是能够独立运行;
  (2)controller 管理集群时,不再需要从 zookeeper 中先读取数据,集群性能上升;
  (3)由于不依赖 zookeeper,集群扩展时不再受到 zookeeper 读写能力限制;
(  4)controller 不再动态选举,而是由配置文件规定。这样可以有针对性的加强controller 节点的配置,而不是像以前一样对随机 controller 节点的高负载束手无策。

2 Kafka-Kraft集群部署

(1)再解压一份Kafka安装包。

tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/

(2)重命名为kafka2。

mv kafka_2.12-3.0.0/ kafka2

(3)在 hadoop102 上修改/opt/module/kafka2/config/kraft/server.properties 配置文件。

#kafka 的角色(controller 相当于主机、broker 节点相当于从机,主机类似 zk 功能)
process.roles=broker, controller
#节点 ID
node.id=2

#controller 服务协议别名
controller.listener.names=CONTROLLER
#全 Controller 列表
controller.quorum.voters=2@hadoop102:9093,3@hadoop103:9093,4@hadoop104:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
#broker 服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker 对外暴露的地址
advertised.Listeners=PLAINTEXT://hadoop102:9092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka 数据存储目录
log.dirs=/opt/module/kafka2/data

(4)分发kafka2,在 hadoop103 和 hadoop104 上需要对 node.id 相应改变, 值需要和controller.quorum.voters 对应。在 hadoop103 和 hadoop104 上需要 根据各自的主机名称,修改相应的advertised.Listeners 地址。

(5)初始化集群数据目录,首先生成存储目录唯一 ID。

 bin/kafka-storage.sh random-uuid

在这里插入图片描述
(6)用该 ID 格式化 kafka 存储目录(三台节点)。

[lyx@hadoop102 kafka2]$ bin/kafka-storage.sh format -t 7NSm-xjRRGu3hj-4bA0qMw -c /opt/module/kafka2/config/kraft/server.properties

[lyx@hadoop103 kafka2]$ bin/kafka-storage.sh format -t 7NSm-xjRRGu3hj-4bA0qMw -c /opt/module/kafka2/config/kraft/server.properties

[lyx@hadoop104 kafka2]$ bin/kafka-storage.sh format -t 7NSm-xjRRGu3hj-4bA0qMw -c /opt/module/kafka2/config/kraft/server.properties

(7)启动Kafka集群。

[lyx@hadoop102 kafka2]$ bin/kafka-server-start.sh -daemon config/kraft/server.properties

[lyx@hadoop103 kafka2]$ bin/kafka-server-start.sh -daemon config/kraft/server.properties

[lyx@hadoop104 kafka2]$ bin/kafka-server-start.sh -daemon config/kraft/server.properties

在这里插入图片描述
(8)停止Kafka集群。

[lyx@hadoop102 kafka2]$ bin/kafka-server-stop.sh

[lyx@hadoop103 kafka2]$ bin/kafka-server-stop.sh

[lyx@hadoop104 kafka2]$ bin/kafka-server-stop.sh

3 Kafka-Kraft集群启停脚本

(1)在/home/用户名/bin目录下创建文件kf2.sh脚本。

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

(2)添加执行权限。

chmod 777 kf2.sh

(3)启动集群命令。

kf2.sh start

(4)停止集群命令。

kf2.sh stop

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

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

相关文章

以服务方式启动安防监控系统EasyNVR程序出现播放异常,是什么原因?

EasyNVR安防视频监控平台的特点是基于RTSP/Onvif协议,将前端设备统一接入,在平台进行转码、直播、处理及分发,在智慧安防视频监控场景中,EasyNVR可实现实时监控、云端录像、检索与回放、云存储、告警、级联等视频能力,…

湖南株洲三维扫描检测CNC机加工零件截面检测弧度测量-CASAIM中科广电

自工业时代开始以来,机械加工及零部件产业已经涵盖了各大电器零部件、汽车零部件、建筑机械零部件、航空航天零部件、海洋工程零部件等领域,涉及多种机械机床及工具仪器的制造。 零件在加工过程中,受制于加工工艺等各方面的因素,…

Tomcat调优【精简版】

Tomcat调优 优化Tomcat内存分配 调整Tomcat启动脚本contalina.sh,设置tomcat启动时分配的内存很可使用的最大内存; CATALINA_OPTS 调整Tomcat线程池 Tomcat默认使用的线程池:ThreadPoolExecutor 可以通过修改server.xml的 Connector 节点下的 maxThreads、minSpareThread…

关于删除的一些小纰漏

前端ajax如果传参不正确,会报500的错,可能是路径文件夹名字不对,一定要确认好,大写与小写的区别:question/QuestionStem_deleteList.do?ids"ids, 还有后面要加get请求后面要加"id",然后后面要加入传的…

004:vue使用relation-graph实现关系图谱

文章目录 1. 效果2. relation-graph简介3. 安装及使用4. 其他更多示例 1. 效果 2. relation-graph简介 这是一个Vue关系图谱组件,可以展示如组织机构图谱、股权架构图谱、集团关系图谱等知识图谱,可提供多种图谱布局,包括树状布局、中心布局…

神经网络训练防止过拟合和欠拟合的方法

神经网络训练防止过拟合和欠拟合的方法 1 过拟合的概念2 欠拟合的概念3 防止过拟合和欠拟合的方法 1 过拟合的概念 如上图所示,模型在训练时表现较好,在验证或测试时,表现较差,即表示过拟合。 过拟合的本质是模型对训练样本过度学…

Linux CentOS7 wc命令

wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。 录入 man wc 可以查看相关信息 基本语法: wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也…

Online Fast Adaptive Low-Rank Similarity Learning for Cross-Modal Retrieval部分复现

表1 我的结果: R50条件下的均值:0.52889 Rall条件下的均值:0.430458

Vue 学习笔记 错误ResizeObserver loop completed with undelivered notifications

环境Vue3 Ts 使用了el-table 后,容易出现如下错误 ERROR ResizeObserver loop completed with undelivered notifications. at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299:58) at eval (webpack-internal:///./nod…

pytorch代码实现之动态卷积模块ODConv

ODConv动态卷积模块 ODConv可以视作CondConv的延续,将CondConv中一个维度上的动态特性进行了扩展,同时了考虑了空域、输入通道、输出通道等维度上的动态性,故称之为全维度动态卷积。ODConv通过并行策略采用多维注意力机制沿核空间的四个维度…

全局异常处理器@RestControllerAdvice解析 Springboot项目异常处理 JavaWeb @ExceptionHandler

RestControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class)//指定捕获异常类型:所有public Result ex(Exception ex){ex.printStackTrace();return Result.error("对不起,出现异常,请联系管理员");}}RestControllerAdvice注解在…

基于Yolov8的野外烟雾检测(1)

目录 1.Yolov8介绍 2.野外火灾烟雾数据集介绍 2.1数据集划分 1.2 通过voc_label.py得到适合yolov8需要的txt 2.3生成内容如下 3.训练结果分析 4.系列篇 1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的…

1千听歌猜歌名疯狂猜歌ACCESS\EXCEL数据库

就是从今年开始,各类的“猜”游戏开始火爆,先是猜图,比如看图猜明星、看图猜成语、看图猜电影、看图猜电视剧、看图猜背景、看图猜游戏、看图猜影视人物、看图猜景点等。然后又开始猜音频,猜音频最多的是歌。甚至现在的《一站到底…

每日一题:请解释什么是闭包(Closure)?并举一个实际的例子来说明。(前端初级)

今天继续在前端初级笔试题中被AI虐: 碱面的答案,问题:初级,回答:初级https://bs.rongapi.cn/1702510598371151872/14我的回答如下: 闭包是指由大括号包裹的一个区域,这个区域代表了一个变量生效…

【数据分享】我国六普的乡镇(街道)人口数据(免费获取)

人口数据是我们在各项研究中都经常使用的数据!人口数据的主要来源是人口普查,全国性的人口普查每十年进行一次。最近三次的人口普查分别是:2000年的第五次全国人口普查,简称五普;2010年的第六次全国人口普查&#xff0…

海外网红营销安全指南:品牌必须遵守的10大法律法规

随着互联网的普及和社交媒体的崛起,品牌们越来越倾向于与海外网红合作,以扩大其在全球市场的影响力。然而,这一战略并非没有风险,因为在不同国家和地区,存在着各种各样的法律法规,可能会影响品牌与海外网红…

JavaScript小案例-tab栏切换(可移除item)

gif效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>tab栏切…

使用JQ获取并渲染三级联动分类数据

数据JSON格式 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…

idea 使用 groovyScript 获取方法参数列表生成方法注释模板遇到的问题。

1、网上好多使用groovyScript来设置获取方法列表生成注释模板的代码&#xff0c;我这篇文章的是想讨论下这种方式存在的一个问题&#xff0c;希望有大佬能提供一个解决方案。 2、设置步骤什么的就省略了直接描述问题。 3、groovyScript代码段如下&#xff1a; groovyScript(…

SpringBoot统一返回处理遇到cannot be cast to java.lang.String问题

ResponseBodyAdvice 接口概述 1、ResponseBodyAdvice 接口允许在执行 ResponseBody 或 ResponseEntity 控制器方法之后&#xff0c;但在使用 HttpMessageConverter 写入响应体之前自定义响应&#xff0c;进行功能增强。通常用于 加密&#xff0c;签名&#xff0c;统一数据格式…