CentOS7安装部署Kafka with KRaft

文章目录

  • CentOS7安装部署Kafka with KRaft
  • 一、前言
    • 1.简介
    • 2.架构
    • 3.环境
  • 二、正文
    • 1.部署服务器
    • 2.基础环境
      • 1)主机名
      • 2)Hosts文件
      • 3)关闭防火墙
      • 4)JDK 安装部署
    • 3.单机部署
      • 1)下载软件包
      • 2)修改配置文件
      • 3)格式化存储目录
      • 4)单机启动
      • 5)测试
      • 6)自启动
    • 4.集群部署
      • 1)下载软件包
      • 2)修改配置文件
      • 3)拷贝Kafka
      • 4)修改配置文件
      • 5)格式化存储目录
      • 6)集群启动
      • 7)测试
      • 8)自启动
    • 5.Kafka管控平台
      • 1)脚本安装
      • 2)手动启动
    • 三、其它
    • 1.常用命令

CentOS7安装部署Kafka with KRaft

一、前言

1.简介

Apache Kafka 是一个开源分布式事件流平台,已被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。

2.架构

ARCHITECTURE - Apache Kafka

在这里插入图片描述

3.环境

  • Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
  • JDK 版本:Java SE Development Kit 11.0.19
  • Kafka 版本:3.6.0

Kafka 官网:https://kafka.apache.org/

Kafka QuickStart:https://kafka.apache.org/documentation/#quickstart

intro - Apache Kafka:https://kafka.apache.org/intro

Know Streaming 官网:https://knowstreaming.com/

CentOS7安装部署Java11:https://blog.csdn.net/u011424614/article/details/132418561

CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916

二、正文

1.部署服务器

  • Kafka 默认端口
端口描述
9092Kafka Clients
9093Kafka Control Plane
8083Kafka Connect
8081Schema Registry
8082REST Proxy
8088ksqlDB
  • 服务器
机器名IP
Kafka-cluster-01192.168.28.121
Kafka-cluster-02192.168.28.122
Kafka-cluster-03192.168.28.123
Kafka-cluster-04192.168.28.124

2.基础环境

1)主机名

  • 修改 4 台服务器的主机名
# 121 执行
hostnamectl set-hostname Kafka-cluster-01 --static
hostnamectl set-hostname Kafka-cluster-01 --transient# 122 执行
hostnamectl set-hostname Kafka-cluster-02 --static
hostnamectl set-hostname Kafka-cluster-02 --transient# 123 执行
hostnamectl set-hostname Kafka-cluster-03 --static
hostnamectl set-hostname Kafka-cluster-03 --transient# 124 执行
hostnamectl set-hostname Kafka-cluster-04 --static
hostnamectl set-hostname Kafka-cluster-04 --transient# 查询状态
hostnamectl status

2)Hosts文件

  • 修改 4 台服务器的 hosts 文件
cat > /etc/hosts <<EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.28.121 Kafka-cluster-01
192.168.28.122 Kafka-cluster-02
192.168.28.123 Kafka-cluster-03
192.168.28.124 Kafka-cluster-04
EOF

3)关闭防火墙

  • 可禁用防火墙,或配置开放的端口,后者比较安全
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service

4)JDK 安装部署

在 4 台服务器上安装JDK

  • 安装参考:《CentOS7安装部署Java11》
  • 安装目录:/opt/java/jdk-11.0.19

3.单机部署

在 121 服务器上执行

1)下载软件包

  • 创建安装目录,并下载
mkdir /opt/kafka
cd /opt/kafka# 下载
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.6.0.tgz# 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0

2)修改配置文件

  • 编辑 server.properties 配置文件
vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变)
# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.121:9092# Kafka存储日志数据的目录路径
log.dirs=/data/kraft-combined-logs

3)格式化存储目录

  • 生成UUID
bin/kafka-storage.sh random-uuid# 生成的 UUID
1vL12MYgT52x0C01Hny4KQ
  • 格式化存储目录,注意替换生成的 UUID
bin/kafka-storage.sh format -t 1vL12MYgT52x0C01Hny4KQ -c config/kraft/server.properties

4)单机启动

  • 启动
cd /opt/kafka/kafka_2.13-3.6.0
# 启动
bin/kafka-server-start.sh -daemon config/kraft/server.properties
# 停止
bin/kafka-server-stop.sh
  • 查看运行情况
jps

5)测试

  • 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0
  • 创建 Topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
  • 写入 event
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092# 写入内容
first event
second event
  • 读取 event
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092

6)自启动

  • 创建 kafka-server.service
cat > /etc/systemd/system/kafka-server.service <<EOF
[Unit]
Description=Kafka Service
After=network.target[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.6.0/config/kraft/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-stop.sh
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF
  • 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start kafka-server.service
systemctl enable kafka-server.service
  • 查询进程状态
systemctl status kafka-server.service

4.集群部署

1)下载软件包

在 121 服务器上执行

  • 创建安装目录,并下载
mkdir /opt/kafka
cd /opt/kafka# 下载
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.6.0.tgz# 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0

2)修改配置文件

在 121 服务器上执行

  • 编辑 server.properties 配置文件
vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变)
# 节点ID,集群节点唯一
node.id=1# 标识哪些节点是Quorum的投票者节点
controller.quorum.voters=1@192.168.28.121:9093,2@192.168.28.122:9093,3@192.168.28.123:9093# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.121:9092# Kafka存储日志数据的目录路径
log.dirs=/data/kraft-combined-logs

3)拷贝Kafka

在 122、123 服务器上执行

  • 122 和 123 服务器创建目录
mkdir /opt/kafka

在 121 服务器上执行

  • 拷贝 Kafka 到其它服务器
scp -r /opt/kafka/kafka_2.13-3.6.0 root@192.168.28.122:/opt/kafka
scp -r /opt/kafka/kafka_2.13-3.6.0 root@192.168.28.123:/opt/kafka

4)修改配置文件

在 122 服务器上执行

  • 编辑 server.properties 配置文件
cd /opt/kafka/kafka_2.13-3.6.0vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变;注意这里是 121 服务器拷贝,所以省了2个参数)
# 节点ID,集群节点唯一
node.id=2# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.122:9092

在 123 服务器上执行

  • 编辑 server.properties 配置文件
cd /opt/kafka/kafka_2.13-3.6.0vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变;注意这里是 121 服务器拷贝,所以省了2个参数)
# 节点ID,集群节点唯一
node.id=3# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.123:9092

5)格式化存储目录

在 121 服务器上执行

  • 生成UUID
bin/kafka-storage.sh random-uuid# 生成的 UUID
OukPqtmXSAO2aYUs9kFFbg

在 121、122、123 服务器上执行

  • 格式化存储目录,使用生成的 UUID
bin/kafka-storage.sh format -t OukPqtmXSAO2aYUs9kFFbg -c config/kraft/server.properties

6)集群启动

在 121、122、123 服务器上执行

  • 启动
cd /opt/kafka/kafka_2.13-3.6.0
# 启动
bin/kafka-server-start.sh -daemon config/kraft/server.properties
# 停止
bin/kafka-server-stop.sh
  • 查看运行情况
jps

7)测试

在 121 服务器上执行

  • 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0
  • 创建 Topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
  • 写入 event
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092# 写入内容
first event
second event
  • 读取 event
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092

8)自启动

在 121、122、123 服务器上执行

  • 创建 kafka-server.service
cat > /etc/systemd/system/kafka-server.service <<EOF
[Unit]
Description=Kafka Service
After=network.target[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.6.0/config/kraft/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-stop.sh
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF
  • 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start kafka-server.service
systemctl enable kafka-server.service
  • 查询进程状态
systemctl status kafka-server.service

5.Kafka管控平台

在 124 服务器上执行

Know Streaming是一套云原生的Kafka管控平台,脱胎于众多互联网内部多年的Kafka运营实践经验,专注于Kafka运维管控、监控告警、资源治理、多活容灾等核心场景。在用户体验、监控、运维管控上进行了平台化、可视化、智能化的建设,提供一系列特色的功能,极大地方便了用户和运维人员的日常使用,让普通运维人员都能成为Kafka专家。

Know Streaming 部署:https://doc.knowstreaming.com/product/2-quick-start#21%E5%8D%95%E6%9C%BA%E9%83%A8%E7%BD%B2

1)脚本安装

mkdir /opt/KnowStreaming
cd /opt/KnowStreaming# 在服务器中下载安装脚本, 该脚本中会在当前目录下,重新安装MySQL。重装后的mysql密码存放在当前目录的mysql.password文件中。
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/deploy_KnowStreaming.sh# 执行脚本(会提示选择安装的版本)
sh deploy_KnowStreaming.sh
  • 访问:http://192.168.28.124:8080
  • 默认账号和密码为:admin / admin

2)手动启动

  • 服务器重启后,手动启动服务
cd /opt/KnowStreaming/KnowStreaming
# 启动
sh bin/startup.sh
# 关闭
sh bin/shutdown.sh

三、其它

1.常用命令

命令说明
systemctl daemon-reload重新加载服务配置
systemctl start kafka-server.service启动服务
systemctl enable kafka-server.service开机自启动服务
systemctl status kafka-server.service查询服务状态
systemctl stop kafka-server.service停止服务
systemctl restart kafka-server.service重启服务
systemctl disable kafka-server.service禁用开机自启动服务

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

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

相关文章

数据结构【栈】

文章目录 数据结构 栈栈的概念与结构栈接口实现 数据结构 栈 栈的概念与结构 栈是是一种特殊的线性表&#xff0c;栈的规定是只在一端插入删除数据&#xff0c;插入删除的一端叫做栈顶&#xff0c;另一端叫栈底。根据上面的特性&#xff0c;栈的数据是后入先出 栈接口实现 栈接…

【算法】二分查找-20231121

这里写目录标题 一、344. 反转字符串二、392. 判断子序列三、581. 最短无序连续子数组四、680. 验证回文串 II 一、344. 反转字符串 提示 简单 865 相关企业 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组…

JMeter-BeanShell预处理程序和BeanShell后置处理程序的应用

一、什么是BeanShell&#xff1f; BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器&#xff0c;JMeter性能测试工具也充分接纳了BeanShell解释器&#xff0c;封装成了可配置的BeanShell前置和后置处理器&#xff0c;分别是 BeanShell Pre…

代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形

代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形 文章链接&#xff1a;柱状图中最大的矩形 视频链接&#xff1a;柱状图中最大的矩形 1. LeetCode 84. 柱状图中最大的矩形 1.1 思路 本题是给一个数组形象得画出图后求矩形的最大面积是多少。本题和42. 接雨水…

Matlab loglog函数

loglog(X,Y) loglog(X,Y,LineSpec) loglog(X1,Y1,...,Xn,Yn) loglog(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) loglog(Y) loglog(Y,LineSpec) loglog(tbl,xvar,yvar) loglog(tbl,yvar) loglog(ax,___) loglog(___,Name,Value) p loglog(___)说明 向量和矩阵数据 示例 loglog(X,Y…

IDEA前端thymeleaf只显示部分数据库问题

只显示int类型的number&#xff0c;不显示string类型的price和weight 先看一下apple.html <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>User List</title> </…

RuntimeError: PyPI no longer supports ‘pip search‘ (or XML-RPC search).

RuntimeError: PyPI no longer supports ‘pip search’ (or XML-RPC search). 1. ERROR: XMLRPC request failed Deprecated Methods https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods PyPI XMLRPC Search Disabled https://status.python.org/inc…

el-popover和el-tooltip样式修改(普通的组件样式修改方法,对popover是不生效的)

第一步:‘popper-class’=‘popperClass’ //添加类名 <el-table-column label="审核状态" align="center"><template slot-scope="scope"><el-popoverpopper-class="addformPanel"placement="top"width=&…

8086/8088 存储器分段概念

8086/8088 存储器分段概念 这一节主要讲述8086/8088 存储器分段的概念。 目的 从8086 CPU开始采用了分段的方法管理存储器&#xff0c;只有充分理解存储器分段的概念和存储器逻辑地址和物理地址的关系&#xff0c;才能有助于我们掌握8086/8088汇编语言。 存储器分段的原因 在此…

【ArcGIS Pro微课1000例】0033:ArcGIS Pro处理cad数据(格式转换、投影变换)

文章目录 一、cad dwg转shp1. 导出为shp2. cad至地理数据库3. data interoperability tools二、shp投影变换一、cad dwg转shp 1. 导出为shp 加载cad数据,显示如下: 选择需要导出的数据,如面状,右键→数据→导出要素: 导出要素参数如下,点击确定。 导出的要素不带空间参…

shell编程规范与变量

目录 一、shell的作用和规范 1.shell的作用 2.shell的执行顺序 3.shell的格式 4.执行shell脚本 1.直接调用shell解释器加上脚本的名字 2.路径加脚本名 绝对路径或相对路径 脚本文件需要有执行权限 3.直接运行 4.其他执行 5.执行环境 二、脚本的错误方…

Java学习day14:权限修饰符,集合(知识点+例题详解)

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) 往期回顾 Java学习day13&#xff1a;泛型&…

Ajax基础(应用场景|jquery实现Ajax|注意事项)

文章目录 一、Ajax简介二、基于jquery实现Ajax三、使用Ajax注意的问题1.Ajax不要与form表单同时提交2.后端响应格式问题3、使用了Ajax作为请求后的注意事项 一、Ajax简介 AJAX&#xff08;Asynchronous Javascript And XML&#xff09;翻译成中文就是“异步Javascript和XML”。…

使用Pytorch测试cuda设备的性能(单卡或多卡并行)

以下CUDA设备泛指NVIDIA显卡 或 启用ROCm的AMD显卡 测试环境&#xff1a; Distributor ID: UbuntuDescription: Ubuntu 22.04.3 LTSRelease: 22.04Codename: jammy 1.首先&#xff0c;简单使用torch.ones测试CUDA设备 import torch import timedef cuda_benchmark(device_id…

ubuntu18.04 terminal打不开的解决方法

目录 现象解决 现象 打开terminal时,一直转圈,然后消失,总是打不开terminal. 解决 编辑文件sudo vim /etc/default/locale,修改为 # File generated by update-locale LANG"en_US.UTF-8" LANGUAGE"en_US:en"重启系统,问题解决.

Python爬虫技术系列-03/4flask结合requests测试静态页面和动态页面抓取

python构建web服务 flask内容参考:Flask框架入门教程&#xff08;非常详细&#xff09; flask安装与运行测试 安装flask pip install flask创建一个webapp.py文件&#xff0c;内容如下 from flask import Flask# 用当前脚本名称实例化Flask对象&#xff0c;方便flask从该脚…

OpenHarmony Axios组件使用过程中,Api9不适配问题

大家好&#xff0c;我是【八戒&#xff0c;你又涨价了哎】 以下是我个人在学习OpenHarmony过程中的分享&#xff0c;请大家多多指教 目录 问题描述 解决方法 问题描述 使用axios组件的时候&#xff0c;把应用部署到开发板&#xff0c;提示Api9不适配 解决方法 对这类版本不…

机器学习模型超参数优化最常用的5个工具包

优化超参数始终是确保模型性能最佳的关键任务。通常&#xff0c;网格搜索、随机搜索和贝叶斯优化等技术是主要使用的方法。 今天分享几个常用于模型超参数优化的 Python 工具包&#xff0c;如下所示&#xff1a; scikit-learn&#xff1a;使用在指定参数值上进行的网格搜索或…

leetcode每日一题31

搜索旋转排序数组 那……二分法呗 数组中的数可以相同 比 33. 搜索旋转排序数组 多了一个「有重复元素」&#xff0c;导致无法根据 num > nums[0] 来判断 num 在哪一半&#xff0c;比如 [1,1,1,1,1,2,1,1,1] 旋转数组两头相等&#xff0c;元素 1 可能在左半边可能在右半边 …

vue2 - SuperMap3D加载基于Nginx服务生成的3DTileset模型切片服务地址

文章目录 🍍开发环境🍉1:nginx发布3Dtileset模型切片服务🍍1.1:准备3DTileset文件🍍1.2:安装nginx服务,配置相关文件1.2.1:下载nginx1.2.2:下载完解压文件如下1.2.3:将3Dtileset模型文件放置 nginx-1.24.0/html/gc 新建文件中如下:1.2.4:配置nginx服务🍉2:…