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://www.pswp.cn/web/96123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96123.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

發布工業智能體,云從科技打造制造業AI“運營大腦”

近日&#xff0c;在2025世界智能產業博覽會重慶市工業智能體首發儀式現場&#xff0c;云從科技重磅發布經營決策-產線運營智能體&#xff0c;為制造業的智能化轉型提供了全新的解決方案。該智能體的亮相&#xff0c;不僅代表著人工智能技術在工業領域的深度應用&#xff0c;更標…

【Linux基礎】parted命令詳解:從入門到精通的磁盤分區管理完全指南

目錄 前言 1 parted命令概述 1.1 什么是parted 1.2 parted與fdisk的對比 1.3 parted的主要優勢 2 parted命令的安裝與基本語法 2.1 在不同Linux發行版中安裝parted 2.2 parted的基本語法 2.3 parted的工作模式 3 parted交互式命令詳解 3.1 交互式操作流程 3.2 主要…

如何在路由器上配置DHCP服務器?

在路由器上配置DHCP服務器的步驟因品牌&#xff08;如TP-Link、華為、小米、華碩等&#xff09;略有差異&#xff0c;但核心流程一致&#xff0c;主要包括登錄管理界面、開啟DHCP功能、設置IP地址池及相關參數。以下是通用操作指南&#xff1a; 一、準備工作 確保電腦/手機已連…

HTML和CSS學習

HTML學習 注釋 <!-- -->組成 告訴瀏覽器我是html文件<!DOCTYPE html> <title>瀏覽器標簽</title> <body> <!--- 其中是主要內容 ---> <p> 段落 </p> </body> </html> (結束點…

OpenTenBase vs MySQL vs Oracle,企業級應用數據庫實盤對比分析

摘要 因為工作久了的緣故&#xff0c;接觸過不少數據庫。公司的管理系統用的MySQL&#xff0c;財務系統用的Oracle。隨著時代發展&#xff0c;國產開源數據庫已經在性能上能與這些國際知名頂尖數據庫品牌相媲美&#xff0c;其中OpenTenBase以其開放環境和優越性能脫穎而出&…

Oracle 備份與恢復常見的七大問題

為了最大限度保障數據的安全性&#xff0c;同時能在不可預計災難的情況下保證數據的快速恢復&#xff0c;需要根據數據的類型和重要程度制定相應的備份和恢復方案。在這個過程中&#xff0c;DBA的職責就是要保證數據庫&#xff08;其它數據由其它崗位負責&#xff09;的高可用和…

StringBuilder類的數據結構和擴容方式解讀

目錄 StringBuilder是什么 核心特性&#xff1a; StringBuilder數據結構 1. 核心存儲結構&#xff08;基于父類 AbstractStringBuilder&#xff09; 2. 類定義與繼承關系 3. 數據結構的核心特點 StringBuilder數據結構的初始化方式 1. 無參構造&#xff1a;默認初始容量…

LangChain實戰(十七):構建與PDF/PPT文檔對話的AI助手

本文是《LangChain實戰課》系列的第十七篇,將專篇深入講解如何構建能夠與PDF和PPT文檔進行智能對話的AI助手。通過學習本文,您將掌握復雜格式文檔的解析技巧、文本與表格處理技術,以及實現精準問答的系統方法。 前言 在日常工作和學習中,PDF和PPT文檔是我們最常接觸的文檔…

魚眼相機模型

魚眼相機模型 最近涉及魚眼相機模型、標定使用等&#xff0c;作為記錄&#xff0c;更新很久不曾更新的博客。 文章目錄魚眼相機模型1 相機成像2 魚眼模型3 畸變3.1 適用針孔和MEI3.2 Kannala-Brandt魚眼模型4 代碼實現1 相機成像 針孔相機&#xff1a;所有光線從一個孔&#xf…

大語言模型提示詞工程詳盡實戰指南

引言&#xff1a;與大型語言模型&#xff08;LLM&#xff09;高效對話的藝術大型語言模型&#xff08;LLM&#xff09;——例如我們熟知的GPT系列、Claude、Llama等——在自然語言處理&#xff08;NLP&#xff09;領域展現了驚人的能力&#xff0c;能夠執行文本摘要、翻譯、代碼…

HTTP 請求體格式詳解

1. 概覽與概念 Content-Type&#xff1a;HTTP 請求/響應頭&#xff0c;表示消息體的媒體類型&#xff08;MIME type&#xff09;。服務端用它決定如何解析請求體。常見場景&#xff1a; 純結構化數據&#xff08;JSON&#xff09; → application/json表單 文件上傳 → multip…

事務設置和消息分發

事務 RabbitMQ是基于AMQP協議實現的&#xff0c;該協議實現了事務機制&#xff0c;因此RabbitMQ也支持事務機制. SpringAMQP也提供了對事務相關的操作&#xff0c;RabbitMQ事務允許開發者確保消息的發送和接收是原子性的&#xff0c;要么 全部成功&#xff0c;要么全部失敗.| 前…

Python 中 try / except / else / finally 異常處理詳解

1. 基本結構 try:# 可能會拋出異常的代碼 except SomeException as e:# 捕獲并處理異常 else:# 如果 try 中代碼沒有異常&#xff0c;就執行這里 finally:# 無論是否發生異常&#xff0c;最后都會執行這里2. 各部分的作用 try 用途&#xff1a;包含可能發生異常的代碼段。如果代…

冰火島 Tech 傳:Apple Foundation Models 心法解密(下集)

引子 上集說到冰火島冰屋內,謝遜、張翠山、殷素素三人親見 “指令(Instructions)” 如何讓 AI 脫胎換骨,從木訥報地名的 “愣頭青”,變身為文采斐然的 “旅行作家”。 正當素素驚嘆這 AI 武學的奇妙時,謝遜卻突然神色一凜,指著手腕上用冰屑刻的 “4096” 字樣道:“這等…

Qt信號與槽機制全面解析

? 1. 核心概念信號與槽是Qt獨創的一種對象間通信機制&#xff0c;它使得一個對象的狀態變化或事件發生能夠自動通知其他對象作出響應&#xff0c;從而實現高度解耦的代碼設計。1.1 信號&#xff08;Signals&#xff09;定義&#xff1a;信號是由對象在特定事件發生時發出&…

2025年COR SCI2區,基于近似細胞分解的能源高效無人機路徑規劃問題用于地質災害監測,深度解析+性能實測

目錄1.摘要2.問題描述與數學模型3.能源網格混合元啟發式算法4.結果展示5.參考文獻6.代碼獲取7.算法輔導應用定制讀者交流1.摘要 本文提出了一種能源高效的無人機路徑規劃方法&#xff08;EURP&#xff09;用于監測分散的地質災害易發區域&#xff0c;通過建立無人機飛行模式的…

LangChain關于提示詞的幾種寫法

上文中 <---->(可點擊移步查閱),我們已經了解到LangChain如何編寫調用大模型的一個基本框架, 在編寫完這個基本框架后,就要與大模型進行交互了,這時候,就需要我們編寫提示詞了, 那么以下,就會介紹提示詞的幾種編寫方式 1 可攜帶變量的提示詞 1.1 PromptTempla…

CyberPoC 是一個現代化的網絡安全練習和競賽平臺,支持容器化部署的安全挑戰,為用戶提供實踐網絡安全技能的環境。

工具介紹 CyberPoC 是一個現代化的網絡安全練習和競賽平臺&#xff0c;支持容器化部署的安全挑戰&#xff0c;為用戶提供實踐網絡安全技能的環境。 &#x1f680; 快速開始 使用 Docker Compose (推薦) 克隆項目 git clone https://github.com/dushixiang/cyberpoc.gitcd cy…

【單片機day03】

UART串口通用異步收發器&#xff0c;2個串口(1個串口被用于ISP下載程序&#xff0c;1個串口被用于和主機之間的通信)全雙工&#xff08;兩根線TX、RX&#xff09;、串行、異步通信方式&#xff1a;單工&#xff1a;發送方和接收方是固定的&#xff0c;數據只能從發送方 發給 …

react16到react19更新及底層實現是什么以及區別

好問題 &#x1f44d;。React 16 → 19 的更新跨度其實涵蓋了 React 的幾個“時代級”的演進&#xff1a;從 Fiber 架構 的重寫、到 并發特性 的引入&#xff0c;再到 React Server Components 和 現代語法支持。我幫你梳理下主要更新點和底層實現的區別&#xff0c;方便你系統…