Kafka的下載安裝

目錄

?一、前期準備

1、查看網卡:

2、配置靜態IP

3、設置主機名

4、配置IP與主機名映射

5、關閉防火墻

6、配置免密登錄

二、JDK的安裝

三、Zookeeper的安裝

四、Kafka的安裝

1、Kafka的下載安裝?

2、修改配置文件

4、分發文件

5、修改其他節點broker.id及advertised.listeners

6、修改zookeeper中的?myid

7、啟動ZK集群--啟動停止腳本

8、啟動Kafka集群--啟動停止腳本

四、Kafka命令行操作

1、主題命令行操作

1.1.查看操作主題命令參數

1.2.查看當前服務器中的所有topic

1.3.創建topic

1.4.查看first主題的詳情

1.5.修改分區數(注意:分區數只能增加,不能減少)

1.6.再次查看first主題的詳情

1.7.刪除topic(學生自己演示)

2、生產者命令行操作

2.1.查看操作生產者命令參數

2.2.發送消息

3、消費者命令行操作

3.1.查看操作消費者命令參數

3.2.消費消息


? ? ? ?Kafka 是基于 Java 的,必須先安裝 JDK。 ?此次我們以?kafka_2.12-3.3.1.tgz? 即 Kafka3.3.1 為案例,安裝jdk1.8。

?? 注意:Kafka 3.9.0 要求本地必須安裝 JDK 17 或以上版本。JDK 8 和 11 已不再被官方支持。
? ? ?

?一、前期準備

1、查看網卡:

2、配置靜態IP

vi /etc/sysconfig/network-scripts/ifcfg-ens32? ----? 根據自己網卡設置。

3、設置主機名

hostnamectl --static set-hostname ?主機名

例如:

hostnamectl --static set-hostname ?hadoop001

4、配置IP與主機名映射

vi /etc/hosts

5、關閉防火墻

systemctl stop firewalld

systemctl disable?firewalld

6、配置免密登錄

傳送門

二、JDK的安裝

傳送門

三、Zookeeper的安裝

傳送門

四、Kafka的安裝

1、Kafka的下載安裝?

1.1. 下載

?https://archive.apache.org/dist/kafka/3.3.1/
?下載 ?kafka_2.12-3.3.1.tgz 安裝包

1.2 上傳
使用xshell上傳到指定安裝路徑

此處是安裝路徑是 /opt/module

??

1.3 解壓重命名

tar -zxvf kafka_2.12-3.3.1.tgz

mv kafka_2.12-3.3.1?kafka

??

?

1.4 配置環境變量

vi ?/etc/profile

export JAVA_HOME=/opt/module/java

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export KAFKA_HOME=/opt/module/kafka

export PATH=$PATH:$JAVA_HOME/bin:$KAFKA_HOME/bin

1.5 加載環境變量

source ?/etc/profile

驗證環境變量是否生效:

env?| grep HOME

env?| grep PATH

2、修改配置文件

vi /opt/module/kafka/config/server.properties

#broker的全局唯一編號,不能重復,只能是數字。

broker.id=0

#broker對外暴露的IP和端口 (每個節點單獨配置)

advertised.listeners=PLAINTEXT://hadoop001:9092

#處理網絡請求的線程數量

num.network.threads=3

#用來處理磁盤IO的線程數量

num.io.threads=8

#發送套接字的緩沖區大小

socket.send.buffer.bytes=102400

#接收套接字的緩沖區大小

socket.receive.buffer.bytes=102400

#請求套接字的緩沖區大小

socket.request.max.bytes=104857600

#kafka運行日志(數據)存放的路徑,路徑不需要提前創建,kafka自動幫你創建,可以配置多個磁盤路徑,路徑與路徑之間可以用","分隔

log.dirs=/opt/module/kafka/datas

#topic在當前broker上的分區個數

num.partitions=1

#用來恢復和清理data下數據的線程數量

num.recovery.threads.per.data.dir=1

# 每個topic創建時的副本數,默認時1個副本

offsets.topic.replication.factor=1

#segment文件保留的最長時間,超時將被刪除

log.retention.hours=168

#每個segment文件的大小,默認最大1G

log.segment.bytes=1073741824

#?檢查過期數據的時間,默認5分鐘檢查一次是否數據過期

log.retention.check.interval.ms=300000

#配置連接Zookeeper集群地址(在zk根目錄下創建/kafka,方便管理)

zookeeper.connect=hadoop001:2181,hadoop002:2181,hadoop003:2181/kafka

4、分發文件

scp -r? /etc/profile? root@hadoop002:/etc/profile

scp -r? /etc/profile? root@hadoop003:/etc/profile

scp -r? /opt/module/java?root@hadoop002:/opt/module/java?

scp -r??/opt/module/java?root@hadoop003:/opt/module/java?

scp -r? /opt/module/zookeeper? root@hadoop002:/opt/module/zookeeper

scp -r? /opt/module/zookeeper? root@hadoop003:/opt/module/zookeeper

scp -r? /opt/module/kafka root@hadoop002:/opt/module/kafka

scp -r? /opt/module/kafka root@hadoop003:/opt/module/kafka

讓三臺機器文件生效

ssh hadoop001 "source /etc/profile"
ssh hadoop002?"source /etc/profile"
ssh hadoop003 "source /etc/profile"

5、修改其他節點broker.idadvertised.listeners

修改?hadoop002 的

vi /opt/module/kafka/config/server.properties

broker.id=1

#broker對外暴露的IP和端口 (每個節點單獨配置)

advertised.listeners=PLAINTEXT://hadoop002:9092

修改?hadoop003 的

vi /opt/module/kafka/config/server.properties

broker.id=2

#broker對外暴露的IP和端口 (每個節點單獨配置)

advertised.listeners=PLAINTEXT://hadoop003:9092

或者使用下面腳本

ssh hadoop002?"sed -i 's/^broker.id=0$/broker.id=1/' /opt/module/kafka/config/server.properties"
ssh hadoop003 "sed -i 's/^broker.id=0$/broker.id=2/' /opt/module/kafka/config/server.properties"

ssh hadoop002 "sed -i 's/^advertised.listeners=PLAINTEXT:\/\/hadoop001:9092$/advertised.listeners=PLAINTEXT:\/\/hadoop002:9092/' /opt/module/kafka/config/server.properties"
ssh hadoop003 "sed -i 's/^advertised.listeners=PLAINTEXT:\/\/hadoop001:9092$/advertised.listeners=PLAINTEXT:\/\/hadoop003:9092/' /opt/module/kafka/config/server.properties"

查看效果

ssh hadoop001 "grep -E 'broker.id|advertised.listeners|log.dirs' /opt/module/kafka/config/server.properties"

ssh hadoop002 "grep -E 'broker.id|advertised.listeners|log.dirs' /opt/module/kafka/config/server.properties"

ssh hadoop003 "grep -E 'broker.id|advertised.listeners|log.dirs' /opt/module/kafka/config/server.properties"

6、修改zookeeper中的?myid

修改 hadoop002 的 /opt/module/zookeeper/zkData/myid 內容為 2

vi /opt/module/zookeeper/zkData/myid

2

修改 hadoop003 的 /opt/module/zookeeper/zkData/myid 內容為 3

vi /opt/module/zookeeper/zkData/myid

3

或者使用下面腳本

ssh hadoop002 "echo '2' > /opt/module/zookeeper/zkData/myid"
ssh hadoop003 "echo '3' > /opt/module/zookeeper/zkData/myid"

查看效果

ssh hadoop001 "cat /opt/module/zookeeper/zkData/myid"

ssh hadoop002 "cat /opt/module/zookeeper/zkData/myid"

ssh hadoop003 "cat /opt/module/zookeeper/zkData/myid"

7、啟動ZK集群--啟動停止腳本

touch /usr/bin/zkall.sh

chmod 777 /usr/bin/zkall.sh

vi?/usr/bin/zkall.sh

#!/bin/bashcase $1 in
"start"){for i in hadoop001 hadoop002 hadoop003doecho ---------- zookeeper $i 啟動 ------------ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh start"done
};;
"stop"){for i in hadoop001 hadoop002 hadoop003doecho ---------- zookeeper $i 停止 ------------    ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh stop"done
};;
"status"){for i in hadoop001 hadoop002 hadoop003doecho ---------- zookeeper $i 狀態 ------------    ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh status"done
};;
esac

啟動:/usr/bin/zkall.sh start

停止:/usr/bin/zkall.sh stop

狀態:/usr/bin/zkall.sh status

8、啟動Kafka集群--啟動停止腳本

touch /usr/bin/kfall.sh

chmod 777 /usr/bin/kfall.sh

vi?/usr/bin/kfall.sh

#! /bin/bashcase $1 in
"start"){for i in hadoop001 hadoop002 hadoop003doecho " --------啟動 $i Kafka-------"ssh $i "source /etc/profile; /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"done
};;
"stop"){for i in hadoop001 hadoop002 hadoop003doecho " --------停止 $i Kafka-------"ssh $i "source /etc/profile; /opt/module/kafka/bin/kafka-server-stop.sh "done
};;
esac

啟動:/usr/bin/kfall.sh start

停止:/usr/bin/kfall.sh stop

四、Kafka命令行操作

1、主題命令行操作

1.1.查看操作主題命令參數

? ? ? ??bin/kafka-topics.sh

參數

描述

--bootstrap-server <String: server toconnect to>

連接的Kafka?Broker主機名稱和端口號。

--topic <String: topic>

操作的topic名稱。

--create

創建主題。

--delete

刪除主題。

--alter

修改主題。

--list

查看所有主題。

--describe

查看主題詳細描述。

--partitions <Integer: # of partitions>

設置分區數。

--replication-factor<Integer: replication factor>

設置分區副本。

--config <String: name=value>

更新系統默認的配置。

1.2.查看當前服務器中的所有topic

在任意一臺安裝zk的機器上都可以啟動客戶端

cd /opt/module/kafka/

bin/kafka-topics.sh --bootstrap-server hadoop001:9092 --list

1.3.創建topic

cd /opt/module/kafka/

bin/kafka-topics.sh --bootstrap-server hadoop001:9092 --create?--partitions 1 --replication-factor 3 --topic first

選項說明:

--topic 定義topic名

--replication-factor ?定義副本數

--partitions ?定義分區數

1.4.查看first主題的詳情

bin/kafka-topics.sh --bootstrap-server hadoop001:9092 --describe?--topic first

1.5.修改分區數(注意:分區數只能增加,不能減少)

bin/kafka-topics.sh --bootstrap-server hadoop001:9092 --alter?--topic first --partitions 3

1.6.再次查看first主題的詳情

bin/kafka-topics.sh --bootstrap-server hadoop001:9092 --describe?--topic first

1.7.刪除topic(學生自己演示)

bin/kafka-topics.sh --bootstrap-server hadoop001:9092 --delete?--topic first

2、生產者命令行操作

2.1.查看操作生產者命令參數

bin/kafka-console-producer.sh

參數

描述

--bootstrap-server <String: server toconnect to>

連接的Kafka?Broker主機名稱和端口號。

--topic <String: topic>

操作的topic名稱。

2.2.發送消息

bin/kafka-console-producer.sh --bootstrap-server hadoop001:9092 --topic first

>hello world

>hello beijing

>hello china

>welecome to china

3、消費者命令行操作

3.1.查看操作消費者命令參數

bin/kafka-console-consumer.sh

參數

描述

--bootstrap-server <String: server toconnect to>

連接的Kafka?Broker主機名稱和端口號。

--topic <String: topic>

操作的topic名稱。

--from-beginning

從頭開始消費。

--group <String: consumer group id>

指定消費者組名稱。

3.2.消費消息

(1)消費first主題中的數據

bin/kafka-console-consumer.sh?--bootstrap-server hadoop001:9092 --topic first

2把主題中所有的數據都讀取出來(包括歷史數據)

bin/kafka-console-consumer.sh --bootstrap-server hadoop001:9092 --from-beginning?--topic first

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

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

相關文章

opencv入門(6) TrackBar調整圖片和鍵盤響應

文章目錄 1 創建trackbar2 使用userdata傳入函數3 鍵盤響應 1 創建trackbar 1.trackbar名稱 2.創建在哪個窗口上 3.拖動trackbar改變的值 4.trackBar的最大值 5.trackbar改變時的回調函數 6. 帶入回調函數的數據&#xff0c;可以不用帶,是一個void指針 createTrackbar(“Value …

QT<33> 修改窗口標題欄背景顏色

前言&#xff1a; 在做項目或者開發QT軟件時&#xff0c;如果想要修改窗口標題欄背景顏色&#xff0c;發現沒有代碼可以直接設置&#xff0c;目前有兩種方法可以設置。 第一種&#xff0c;自定義一個界面類&#xff0c;用QLabelQWidget實現&#xff0c;QLabel當作標題欄。 第…

JavaEE-博客系統項目

項目介紹 準備工作 創建數據表 創建項目 添加依賴 創建對應目錄 除了基本的數據層mapper&#xff0c;業務層service&#xff0c;交互層controller&#xff0c;還創建了公共類的層common&#xff0c;枚舉類層enums&#xff0c;異常類層&#xff0c;和實體類層pojo。 配置項目配…

Java項目:基于SSM框架實現的軟件工程項目管理系統【ssm+B/S架構+源碼+數據庫+畢業論文+開題報告】

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本項目管理系統就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間內處理完畢龐大的數據信息&am…

[按鍵手機安卓/IOS腳本插件開發] 按鍵插件調試與判斷循環結構輔助工具

實現按鍵插件的核心原理 通過一個table類型的QMPlugin變量實現按鍵精靈調用Lua函數&#xff0c;例如 -- Lua代碼 -- 實現兩數相加求和 function QMPlugin.Add(a, b) return a b end 將以上代碼保存成.lua文件&#xff0c;例如test.lua后&#xff0c;放入按鍵精靈手機助手的p…

提示詞框架(9)--CARE

提示詞框架不止是AI的框架&#xff0c;也可以是我們的思考框架&#xff0c;拆解問題的方法&#xff01;&#xff01;&#xff01; CARE框架是一種用于優化提示詞設計的方法&#xff0c;它幫助用戶更有效地與AI進行交互&#xff0c;特別是在需要獲取特定信息或實現某些任務時。…

uniapp+vue2 input不顯示明文密碼,點擊小眼睛顯示或隱藏密碼

<u-input placeholder"請輸入密碼" prefixIcon"lock" :password"showPassword" v-model"formData.password"prefixIconStyle"font-size: 25px;color: #3C9CFF" border"none"><template slot"suffix…

時間序列的類增量學習:基準與評估

論文地址&#xff1a;https://dl.acm.org/doi/abs/10.1145/3637528.3671581 論文源碼&#xff1a;https://github.com/zqiao11/TSCIL 會議&#xff1a;SIGKDD 2024&#xff08;CCF-A&#xff09; 現實環境本質上是非平穩的&#xff0c;隨著時間推移常會引入新類別。這在時間序…

智能攻擊原理和架構

大家讀完覺得有幫助記得關注和點贊&#xff01;&#xff01;&#xff01; 智能攻擊系統基于**人工智能&#xff08;AI&#xff09;與大語言模型&#xff08;LLM&#xff09;技術**&#xff0c;通過**環境感知→自主決策→動態執行→對抗進化**的閉環架構實現高效網絡入侵。以下…

Beamer-LaTeX學習(教程批注版)【4】

眾所周知&#xff0c;隨著顯示器普及寬屏化&#xff0c;PPT排版需要多列化來充分利用頁面的橫向空間。 這節課我們來學習如何創建列&#xff0c;即在beamer中增加列內容&#xff0c;以及如何對齊列。 1 使用不同的寬度來創建列 在beamer中我們通過在頁面上使用columns環境來創…

通俗理解JVM細節-面試篇

文章目錄 前言JVM概述JVM是什么&#xff1f;解決了什么問題&#xff1f;JVM運行流程JVM 與 JRE&#xff0c;JDK的關系 JVM內存結構JVM區域劃分程序計數器棧堆方法區 類加載機制五個階段加載驗證準備解析初始化總結雙親委派模型 垃圾回收內存管理什么是GC&#xff1f;如何判定誰…

意識邊疆保衛戰:22:47深圳AI-BioFab人機融合危機全息實錄

前言 前些天發現了一個巨牛的人工智能免費學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站 &#x1f9e0;《意識邊疆保衛戰&#xff1a;22&#xff1a;47深圳AI-BioFab人機融合危機全息實錄》 副標題&#xff1a;機械義…

langchain從入門到精通(三十四)——RAG優化策略(十)父文檔檢索器實現拆分和存儲平衡

1. 拆分文檔與檢索的沖突 在 RAG 應用開發中&#xff0c;文檔拆分 和 文檔檢索 通常存在相互沖突的愿望&#xff0c;例如&#xff1a; 我們可能希望擁有小型文檔&#xff0c;以便它們的嵌入可以最準確地反映它們的含義&#xff0c;如果太長&#xff0c;嵌入/向量沒法記錄太多…

Javaweb - 7 xml

XML 是EXtensible Markup Language 的縮寫&#xff0c;翻譯過來就是可擴展標記語言。即&#xff0c;XML 和 HTML 一樣&#xff0c;都是標記語言&#xff0c;也就是說&#xff0c;它們的基本語法都是標簽。 特點&#xff1a; 1. 可擴展&#xff1a;即 XML 是允許自定義格式的。但…

qml實現 裁剪進度條

我們需要實現一個垂直進度條效果&#xff0c;但使用圖片裁剪的方式。具體需求&#xff1a; 1. 圖片位置固定&#xff0c;容器對齊其左邊和下邊&#xff0c;寬度和圖片相同。 2. 容器背景透明&#xff0c;調整裁剪容器的高度&#xff0c;使其有高度進度條的感覺&#xff08;從下…

Dify 工作流全棧解析:從零構建你的 AI 應用流程引擎

AI工作流的導言&#xff1a; 工作流系統&#xff08;Workflow System&#xff09;是 Dify 的核心組成部分&#xff0c;它通過可視化編程界面支持創建復雜的 AI 應用程序。用戶可以將不同的功能塊連接起來&#xff0c;從而設計出用于處理數據、與 AI 模型交互、管理條件以及執行…

上下位機通訊規則

0&#xff1a;事由 最近開發&#xff0c;上位機Qt與下位機通訊的時候發現通訊規則有些不一樣&#xff0c;這里簡單記錄一下 。所有代碼基于元寶生成&#xff0c;屬于偽代碼不保證真實可用&#xff0c;啊但是邏輯是這么個邏輯。 1&#xff1a;底層通訊規則 以STM32向上位機通訊…

創建平衡二叉樹C++

給你一個整數數組 nums &#xff0c;其中元素已經按 升序 排列&#xff0c;請你將其轉換為一棵 平衡 二叉搜索樹。 平衡二叉樹&#xff1a;每個節點的左右子樹高度差不超過1 class Solution { public:TreeNode* dfs(vector<int>& nums, int left, int right){if(l…

海光の初體驗

背景 八張K100的風扇已經將近一年沒轉過了…早在今年4月29日&#xff0c;Qwen3正式發布并全部開源8款「混合推理模型」。作為Qwen系列中的最新一代大型語言模型&#xff0c;Qwen3在推理、指令遵循、工具調用、多語言能力等方面進行了全面增強。海光DCU&#xff08;Deep Comput…

場外交易(OTC)財富管理系統開發及解決方案報告

——跨境金融科技賦能機構客戶新增長 一、OTC市場現狀與機構業務痛點 1. 政策機遇與市場擴容 “北向互換通”期限延長&#xff1a;2025年7月1日&#xff0c;中國外匯交易中心聯合香港交易所將利率互換合約期限延長至30年&#xff0c;首日交易規模達15.3億元&#xff0c;填補超…