Linux 單機部署 Kafka 詳細教程(CentOS 7+)

系列博客專欄:

  • SpringBoot與微服務實踐系列博客
  • Java互聯網高級培訓教程

一、環境準備

1. 操作系統要求

Kafka 可以在多種 Linux 發行版上運行,本文以 CentOS 7 為例,其他發行版步驟類似,只需調整包管理命令。

2. Java 環境要求

Kafka 基于 Java 開發,需安裝 JDK 8 或以上版本

java -version

若已安裝,將輸出示例:

openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)

二、安裝 JDK

1. 下載 JDK

  • Oracle 官網:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
  • 或 OpenJDK 官網下載 Linux 版本
  • 示例(OpenJDK 8):
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz

2. 解壓安裝包

mkdir -p /usr/local/java
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/local/java

3. 配置環境變量

/etc/profile 末尾追加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_41
export PATH=$PATH:$JAVA_HOME/bin

使配置生效:

source /etc/profile

4. 驗證安裝

java -version

三、安裝并配置 ZooKeeper

Kafka 依賴 ZooKeeper 管理集群,建議獨立安裝。

1. 下載 ZooKeeper

  • 官網:https://zookeeper.apache.org/releases.html
  • 示例版本:3.8.4
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

2. 解壓安裝包

mkdir -p /usr/local/zookeeper
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/zookeeper

3. 配置 ZooKeeper

(1) 創建數據與日志目錄
mkdir -p /usr/local/zookeeper/data
mkdir -p /usr/local/zookeeper/logs
(2) 修改配置文件
cd /usr/local/zookeeper/apache-zookeeper-3.8.4-bin/conf
cp zoo_sample.cfg zoo.cfg

編輯 zoo.cfg

dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
(3) 集群配置(可選)

單機可跳過。集群模式需添加:

server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888

并在每個節點的 dataDir 中創建 myid

echo 1 > /usr/local/zookeeper/data/myid
(4) 配置環境變量
echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.8.4-bin' >> /etc/profile
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
source /etc/profile

4. 啟動與驗證

zkServer.sh start
zkServer.sh status   # 單機顯示 Mode: standalone
zkServer.sh stop

四、安裝 Kafka

1. 下載 Kafka

  • 官網:https://kafka.apache.org/downloads
  • 示例版本:3.6.2(Scala 2.12)
wget https://archive.apache.org/dist/kafka/3.6.2/kafka_2.12-3.6.2.tgz

2. 解壓安裝包

mkdir -p /usr/local/kafka
tar -zxvf kafka_2.12-3.6.2.tgz -C /usr/local/kafka

3. 配置 Kafka

編輯 /usr/local/kafka/kafka_2.12-3.6.2/config/server.properties

broker.id=0
listeners=PLAINTEXT://your_ip:9092
log.dirs=/usr/local/kafka/kafka-logs
zookeeper.connect=localhost:2181

創建日志目錄:

mkdir -p /usr/local/kafka/kafka-logs

五、啟動 Kafka 服務

1. 啟動順序

確保 ZooKeeper 已啟動:

zkServer.sh start

啟動 Kafka:

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.12-3.6.2/config/server.properties

2. 驗證進程

jps

輸出應包含:

QuorumPeerMain
Kafka

六、停止服務

# 停止 Kafka
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-server-stop.sh# 停止 ZooKeeper
zkServer.sh stop

七、測試 Kafka

1. 創建主題

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-topics.sh \--create \--topic test-topic \--bootstrap-server localhost:9092 \--replication-factor 1 \--partitions 1

2. 查看主題列表

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

3. 發送消息

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-console-producer.sh \--bootstrap-server localhost:9092 \--topic test-topic

輸入內容后按 Enter 發送。

4. 消費消息(新終端)

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-console-consumer.sh \--bootstrap-server localhost:9092 \--topic test-topic \--from-beginning

八、總結

通過以上步驟,已在 Linux 系統成功獨立安裝配置了 ZooKeeperKafka
后續可根據需求擴展為集群、調整性能參數或集成其他組件。

祝你順利搭建 Kafka 消息系統!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92628.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92628.shtml

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

相關文章

解析工業機器視覺中的飛拍技術

在工業機器視覺的領域,"飛拍"這個術語時常被提起,尤其是在高速檢測和動態捕捉的場景中。但你真的了解飛拍是什么嗎?它到底如何工作,能為工業應用帶來哪些突破性改進呢?讓我們一起來解密。1. 飛拍的核心概念 …

[特殊字符]企業游學 | 探秘字節,解鎖AI科技新密碼

寶子們,想知道全球科技巨頭字節跳動的成功秘籍嗎?一場企業游學,帶你深入字節跳動創新基地,探索AI新科技,揭開規模化增長背后的神秘面紗?字節跳動:全球經濟價值的創造者字節跳動可太牛啦!TikTok…

主流大數據框架深度解析:從介紹到選型實戰

主流大數據框架深度解析:從介紹到選型實戰 在數據驅動的時代,選擇合適的大數據處理框架是構建高效、可靠數據平臺的關鍵。 深入剖析 Hadoop MapReduce、Apache Spark、Apache Flink 和 Kafka Streams 四大主流框架,從框架介紹、具體使用場景、優缺點、選擇建議到實際案例,…

座艙HMI軟件開發架構:核心功能與案例解析

隨著智能座艙的持續演進,HMI(Human Machine Interface,人與機器交互界面)系統已從單一的顯示控制器演變為集多屏聯動、多模態交互、車載服務集成于一體的智能系統,需要一個多系統、多設備協同運行的復雜架構來支撐。本…

把“思考”塞進 1 KB:我用純 C 語言給單片機手搓了一個微型 Transformer 推理引擎

標簽:TinyML、Transformer、單片機、Cortex-M、量化、KV-Cache、裸機編程 ---- 1. 為什么要在 64 KB SRAM 的 MCU 上跑 Transformer? 2024 年以前,TinyML ≈ CNN CMSIS-NN,做語音喚醒或簡單分類就到頭了。 但產品同事突然拍腦袋&…

什么是CLI?

什么是CLI?CLI(Command Line Interface)是命令行界面的縮寫,是一種通過文本命令與計算機程序交互的方式。通俗比喻CLI就像是一個"智能助手":你輸入命令,它執行任務就像和機器人對話一樣&#xff…

mysql基本sql語句大全

十分想念順店雜可。。。以下是 MySQL 中常用的基本 SQL 語句大全,按功能分類整理,包含語法和示例,方便參考使用:一、數據庫操作(DDL)用于創建、刪除、切換數據庫。創建數據庫-- 基本語法 CREATE DATABASE […

構建響應式在線客服聊天系統的前端實踐 Vue3+ElementUI + CSS3

構建響應式客服聊天系統的前端實踐在當今數字化時代,客服系統已成為企業與客戶溝通的重要橋梁。一個優秀的在線客服系統不僅需要功能完善,還需要在各種設備上都能提供良好的用戶體驗。本文將介紹如何構建一個響應式的客服聊天界面,確保在桌面…

C語言memcpy函數詳解:高效內存復制的實用工具

目錄1. memcpy函數是什么?函數原型2. memcpy函數的用法運行結果:代碼解析3. memcpy函數的注意事項3.1 內存區域不重疊3.2 緩沖區大小管理3.3 指針有效性3.4 性能優勢3.5 平臺兼容性4. 實際應用場景4.1 數組復制4.2 動態內存復制4.3 結構體復制4.4 緩沖區…

多級緩存架構:新品咖啡上線引發的數據庫壓力風暴與高并發實戰化解方案

一、背景:新品咖啡風暴與數據庫之痛想象一下:某知名咖啡品牌推出限量版“星空冷萃”,通過社交媒體引爆流量。上午10點開售瞬間,APP與網站涌入數十萬用戶,商品詳情頁、庫存查詢請求如海嘯般涌向后臺。傳統架構下&#x…

888. 公平的糖果交換

目錄 題目鏈接: 題目: 解題思路: 代碼: 總結: 題目鏈接: 888. 公平的糖果交換 - 力扣(LeetCode) 題目: 解題思路: 前一個數組和sumA,后一個數組sumB,然…

Day01 項目概述,環境搭建

軟件開發整體介紹 軟件開發流程 需求分析:需求規格說明書、產品原型 設計:UI 設計、數據庫設計,接口設計 編碼:項目代碼、單元測試 測試:測試用例、測試報告 上線運維:軟件環境安裝、配置 角色分工 項…

Perl Socket 編程

Perl Socket 編程 引言 Perl 語言作為一種強大的腳本語言,在系統管理和網絡編程領域有著廣泛的應用。Socket 編程是網絡編程的核心,它允許程序在網絡中進行數據傳輸。本文將詳細介紹 Perl 語言中的 Socket 編程,包括 Socket 的概念、創建、通信以及一些高級應用。 Socket…

3 種簡單方法備份 iPhone 上的短信 [2025]

短信通常承載著我們工作和私人生活中有價值的信息和美好的回憶,以及我們不想丟失的特別對話。這就是為什么備份 iPhone 短信如此重要的原因。如果出現問題,比如意外刪除或系統問題,備份意味著你可以輕松地恢復短信。在本指南中,我…

Linux庫路徑三劍客:/usr/lib、/usr/local/lib、~/.local/lib 詳解與避坑指南

在Linux的世界里,/usr/lib、/usr/local/lib和~/.local/lib這三個路徑看似只是簡單的文件夾,實則是軟件包管理和開發環境的基石。理解它們的區別,不僅能讓你的pip install、make install等命令得心應手,更能避免ImportError、comma…

python 之 autogen-core《二》代理運行環境、應用程序堆棧、代理生命周期

支持兩種類型的運行時環境:獨立式和分布式 獨立代理運行時 獨立運行時適用于單進程應用程序,其中所有代理均使用同一種編程語言實現并在同一進程中運行。在 Python API 中,獨立運行時的一個示例是SingleThreadedAgentRuntime。 在這里&…

歐姆龍PLC CP1H在視覺檢測產線中的應用:以太網模塊實現上位機實時采樣與觸摸屏報警聯動

一、行業痛點與解決方案概述以某汽車零部件制造企業的生產線檢測系統為例,該企業原本使用歐姆龍CP1H PLC作為主控制器。由于CP1H PLC本身不具備以太網接口,只能通過串口(如RS232或RS485)進行通訊。這種通訊方式存在傳輸距離短、傳…

快速找到兩個 Word 文檔之間文字的區別

要快速找到兩個 Word 文檔之間文字的區別,可以使用 Microsoft Word 自帶的“比較(Compare)”功能,步驟如下: ? 方法一:使用 Microsoft Word 的“比較”功能 打開 Microsoft Word。 點擊頂部菜單欄中的 “…

ZK首次連接失敗,第二次連接成功的問題解決方案

問題 項目中配置zk后,啟動時zk第一次鏈接總是失敗,過一會后又會鏈接成功。異常如下: "C:\Program Files\Java\jdk1.8.0_291\bin\java.exe" -agentlib:jdwptransportdt_socket,address127.0.0.1:58217,suspendy,servern -XX:TieredS…

OpenCV cv2.flip() 函數詳解與示例

本文介紹了 OpenCV 中 cv2.flip() 函數的用法,該函數可實現圖像的水平、垂直及雙向翻轉。通過設置 flipCode 參數為 0、1 或 -1,用戶可分別獲得上下顛倒、左右鏡像或 180 旋轉的效果。文中提供了詳細的參數說明、示例代碼以及三種翻轉模式的效果對比&…