当前位置: 首页 > news >正文

openEuler2403安装部署Kafka

文章目录

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

openEuler2403安装部署Kafka with KRaft

一、前言

1.简介

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

KRaft(Kafka Raft)模式是从 Apache Kafka 2.8.0 版本开始引入,KRaft 旨在摒弃对 ZooKeeper 的依赖。在以前的版本中,Apache Kafka 依赖于 ZooKeeper 来管理集群元数据和协调集群,但这增加了系统的复杂性和运维负担。KRaft 模式通过引入 Raft 协议直接在 Kafka 内部处理这些功能,从而简化了 Kafka 的架构和部署过程。

2.架构

ARCHITECTURE - Apache Kafka

在这里插入图片描述

3.环境

  • Linux 发行版: openEuler-24.03-LTS-SP2-x86_64-dvd.iso
  • JDK 版本:Alibaba Dragonwell Extended Edition-11.0.27.24+6-GA
  • Kafka 版本:3.9.1

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

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

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

Kafbat UI 用户手册:https://ui.docs.kafbat.io/

openEuler2403安装部署Kafbat:https://blog.csdn.net/u011424614/article/details/151195306

openEuler常用操作指令:https://blog.csdn.net/u011424614/article/details/150942929

openEuler中LVM调整实现home与root分区空间平衡:https://blog.csdn.net/u011424614/article/details/150961763

openEuler安装部署JDK11:https://blog.csdn.net/u011424614/article/details/150961633

openEuler2403安装部署MySQL8:https://blog.csdn.net/u011424614/article/details/150966094

VirtualBox安装openEuler24.03:https://blog.csdn.net/u011424614/article/details/150725588

VMware安装openEuler24.03:https://blog.csdn.net/u011424614/article/details/150723134

二、正文

1.部署服务器

  • Kafka 默认端口
端口描述
9092Kafka Clients
9093Kafka Control Plane
8083Kafka Connect
8081Schema Registry
8082REST Proxy
8088ksqlDB
  • 服务器
  • 单机部署使用:192.168.249.121
  • 集群部署使用:192.168.249.121、192.168.249.122、192.168.249.123
IP节点部署
192.168.249.121Kafka 节点
192.168.249.122Kafka 节点
192.168.249.123Kafka 节点
192.168.249.124Know Streaming 管控平台 【CentOS7】

2.基础环境

1)JDK 安装部署

集群部署:需要在 3 台 Kafka 服务器上安装JDK

  • 安装参考:《openEuler安装部署JDK11》
  • JDK 版本:Alibaba Dragonwell Extended Edition-11.0.27.24+6-GA
  • 安装目录:/opt/java/dragonwell-11.0.27.24+6-GA

2)关闭防火墙

集群部署:在 4 台服务器上执行

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

3.单机部署

在 121 服务器上执行

1)下载软件包

  • 创建安装目录,并下载
mkdir /opt/kafka && cd /opt/kafka# 下载软件包,如果 wget 无法下载,可使用浏览器或迅雷下载
wget https://downloads.apache.org/kafka/3.9.1/kafka_2.13-3.9.1.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.9.1.tgz# 进入安装目录
cd /opt/kafka/kafka_2.13-3.9.1

2)修改配置文件

  • 编辑 server.properties 配置文件
vim config/kraft/server.properties

内容(修改以下配置,其它不变)

# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.249.121:9092,CONTROLLER://192.168.249.121:9093# Kafka存储日志数据的目录路径
log.dirs=/data/kraft-combined-logs

3)格式化存储目录

  • 生成UUID
# 生成 UUID
bin/kafka-storage.sh random-uuid
# 输出内容:
FHWoeUzDRWymafTzEl0rEw
  • 格式化存储目录
  • 注意:1.替换生成的 UUID;2.文件路径:config/kraft/server.properties
bin/kafka-storage.sh format -t FHWoeUzDRWymafTzEl0rEw -c config/kraft/server.properties

4)单机启动

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

5)测试

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

6)systemd服务管理

  • 创建 kafka-server.service
cat > /etc/systemd/system/kafka-server.service <<EOF
[Unit]
Description=Kafka Service
After=network.target[Service]
Environment="JAVA_HOME=/opt/java/dragonwell-11.0.27.24+6-GA"
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/kafka_2.13-3.9.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.9.1/config/kraft/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.9.1/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 无法下载,可使用浏览器或迅雷下载
wget https://downloads.apache.org/kafka/3.9.1/kafka_2.13-3.9.1.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.9.1.tgz# 进入安装目录
cd /opt/kafka/kafka_2.13-3.9.1

2)修改配置文件

在 121 服务器上执行

  • 编辑 server.properties 配置文件
vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变)
# 节点ID,集群节点唯一
node.id=1# 标识哪些节点是Quorum的投票者节点
controller.quorum.voters=1@192.168.249.121:9093,2@192.168.249.122:9093,3@192.168.249.123:9093# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.249.121:9092,CONTROLLER://192.168.249.121:9093# 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.9.1 root@192.168.249.122:/opt/kafka
scp -r /opt/kafka/kafka_2.13-3.9.1 root@192.168.249.123:/opt/kafka

4)修改配置文件

在 122 服务器上执行

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

在 123 服务器上执行

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

5)格式化存储目录

在 121 服务器上执行

  • 生成UUID
cd /opt/kafka/kafka_2.13-3.9.1# 生成 UUID
bin/kafka-storage.sh random-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.9.1
# 启动
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.9.1
  • 创建 Topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.249.121:9092
  • 写入 event
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.249.121:9092# 写入内容
first event
second event
  • 读取 event
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.249.121:9092

8)systemd服务管理

在 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/dragonwell-11.0.27.24+6-GA"
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/kafka_2.13-3.9.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.9.1/config/kraft/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.9.1/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 服务器上执行

1)Kafka启动JMX

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

  • 编辑 kafka-server-start.sh 启动脚本
cd /opt/kafka/kafka_2.13-3.9.1/vim bin/kafka-server-start.sh

编辑内容:除注释外第一行,加入 JMX 端口指定服务器 IP

注意:替换不同服务器的 IP

export JMX_PORT=9999KAFKA_OPTS="-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.authenticate=false \-Dcom.sun.management.jmxremote.ssl=false \-Djava.rmi.server.hostname=192.168.249.121"
export KAFKA_OPTS
  • 重启 Kafka(选择其中一种重启方式)
# systemctl 重启
systemctl stop kafka-server.service
systemctl start kafka-server.service
systemctl status kafka-server.service# 备用,非必要执行,脚本重启
cd /opt/kafka/kafka_2.13-3.9.1/
bin/kafka-server-stop.sh
bin/kafka-server-start.sh -daemon config/kraft/server.properties
  • 检测 JMX 端口
netstat -tunlp |grep 9999

2)安装Kafbat UI

Kafbat UI 是一款多功能、高效、轻量级且灵活的 Web 界面工具,专为监控和管理 Apache Kafka® 集群而设计。它由开发者打造、为开发者服务,提供直观的操作体验,帮助用户:实时洞察数据流、快速定位并解决问题、保障集群持续高性能运行。

  • 具体操作参考:《openEuler2403安装部署Kafbat》

三、其它

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://JxbSEsaz.pmmrb.cn
http://Th7Mup3j.pmmrb.cn
http://MQEWSGYs.pmmrb.cn
http://61ClwwJe.pmmrb.cn
http://qbsSr05N.pmmrb.cn
http://d6P6hnYa.pmmrb.cn
http://WaaBrM6F.pmmrb.cn
http://v6mL9E4D.pmmrb.cn
http://pd9WVFvQ.pmmrb.cn
http://1UpupYPS.pmmrb.cn
http://Sk0kxVwp.pmmrb.cn
http://62QDywLQ.pmmrb.cn
http://bjYlBvgg.pmmrb.cn
http://gwcIhnmg.pmmrb.cn
http://F9YdyQKL.pmmrb.cn
http://bibV5Iny.pmmrb.cn
http://bvNNAvdP.pmmrb.cn
http://hio5WN27.pmmrb.cn
http://svXboyxq.pmmrb.cn
http://ip40vFWO.pmmrb.cn
http://dyEVZ21s.pmmrb.cn
http://3WYYz6Lm.pmmrb.cn
http://A1KhwVuq.pmmrb.cn
http://oWh1IxCh.pmmrb.cn
http://gRLmDDti.pmmrb.cn
http://Z2ukyjaM.pmmrb.cn
http://bsP8AHlk.pmmrb.cn
http://Dt0brKi7.pmmrb.cn
http://UQMHJZMS.pmmrb.cn
http://4rRpn5nQ.pmmrb.cn
http://www.dtcms.com/a/366291.html

相关文章:

  • CDN加速的安全隐患与解决办法
  • (E题|AI 辅助智能体测)2025年高教杯全国大学生数学建模国赛解题思路|完整代码论文集合
  • Process Explorer 学习笔记(第三章3.1.2):管理权利与提权机制解析)
  • SQL Server服务管理
  • OpenAI开放ChatGPT Projects功能,免费用户也能用了!
  • 【已更新文章+代码】2025数学建模国赛A题思路代码文章高教社杯全国大学生数学建模-烟幕干扰弹的投放策略
  • Java集合---Collection接口和Map接口
  • 应对反爬:使用Selenium模拟浏览器抓取12306动态旅游产品
  • PDF.AI-与你的PDF文档对话
  • Apache PDFBox 与 spire.pdf for java 使用记录
  • Access开发导出PDF的N种姿势,你get了吗?
  • 那些年我们一起追过的Java技术,现在真的别再追了!
  • 记一次 Nuxt 3 + pnpm Monorepo 中的依赖地狱:`@unhead/vue` 引发的致命错误
  • 前端基础(四十三):文本数据解析为键值对
  • vue3入门- script setup详解上
  • JS(DOM对象)
  • Linux内存管理章节三:绘制Linux的内存地图:内核与用户空间布局详解
  • window使用ffmep工具,加自定义脚本执行视频转码成h264(运营人员使用)
  • webrtc之语音活动上——VAD能量检测原理以及源码详解
  • STM32H750 RTC介绍及应用
  • Rewind-你人生的搜索引擎
  • S32K328上芯片内部RTC的使用和唤醒配置
  • Paraverse平行云实时云渲染助力第82届威尼斯电影节XR沉浸式体验
  • 苹果Vision Air蓝图或定档2027,三星/微美全息加速XR+AI核心生态布局卡位
  • 低代码高效搭建应用,轻松应对多场景需求
  • 鸿蒙分布式数据同步失败全解
  • 执行select * from a where rownum<1;,数据库子进程崩溃,业务中断。
  • 【kernel】binder死亡代理
  • Oracle 数据库使用事务确保数据的安全
  • 数据库系统工程师软考备战:第一篇 - 数据库系统基础与体系结构