【hadoop】Kafka 安裝部署

一、Kafka安裝與配置

步驟:

1、使用XFTP將Kafka安裝包kafka_2.12-2.8.1.tgz發送到master機器的主目錄。

2、解壓安裝包:

tar -zxvf ~/kafka_2.12-2.8.1.tgz

3、修改文件夾的名字,將其改為kafka,或者創建軟連接也可:

mv ~/kafka_2.12-2.8.1 ~/kafka

4、修改配置文件,Kafka包含生產者、消費者、ZooKeeper、Kafka集群節點等四個角色,因此需要修改對應的4個配置文件即可。Kafka的配置文件夾在解壓文件夾里面的config文件夾內,先執行以下命令進入到對應的目錄:

cd ~/kafka/config

(1)修改zookeeper.properties配置文件:

# 指定ZooKeeper的數據目錄
dataDir=/home/hadoop/zkdata
# 指定ZooKeeper的端口(這個應該不用改)
clientPort=2181

(2)修改consumer.properties配置文件:

# 配置Kafka集群地址
bootstrap.servers=master:9092,slave1:9092,slave2:9092

(3)修改producer.properties配置文件:

# 配置Kafka集群地址
bootstrap.servers=master:9092,slave1:9092,slave2:9092

(4)修改server.properties配置文件(找到對應的參數修改):

# 指定ZooKeeper集群
zookeeper.connect=master:2181,slave1:2181,slave2:2181

上述內容修改完畢后保存。

5、將上面配置修改好后的Kafka安裝文件夾使用scp命令分發給slave1、slave2兩個節點:

scp -r ~/kafka hadoop@slave1:~
scp -r ~/kafka hadoop@slave2:~

6、分發完成以后,在每個節點上修改server編號:

cd ~/kafka/config
vim server.properties

找到broker.id項,master、slave1、slave2三臺機器分別標識為1、2、3

broker.id=1

broker.id=2

broker.id=3

7、配置環境變量,三臺機器都要配置:

vim ~/.bashrc

?在文件末尾添加以下內容:

export KAFKA_HOME=/home/hadoop/kafka
export PATH=$KAFKA_HOME/bin:$PATH

保存文件,然后刷新環境變量或重新啟動命令行終端:

source ~/.bashrc

?

二、集群啟動測試

Kafka作為一個分布式應用程序,它依賴ZooKeeper提供協調服務,因此要啟動Kafka,必須先啟動ZooKeeper集群,再啟動Kafka集群

步驟:

1、啟動好ZooKeeper以后,在三臺機器上執行以下命令啟動Kafka:

kafka-server-start.sh -daemon ~/kafka/config/server.properties

用jps命令在三臺機器上都能看到Kafka進程的話,說明Kafka集群服務啟動成功。


?

三、集群功能測試

集群啟動成功后,還需測試其功能是否能正確使用,Kafka自帶很多種Shell腳本供用戶使用,包括生產消息、消費消息、Topic管理等,下面利用Shell腳本來測試Kafka集群的功能。

步驟:

1、創建Topic:

kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 --partitions 3

2、查看Topic列表:

kafka-topics.sh --zookeeper localhost:2181 --list

能夠看到第1步創建的test則創建Topic成功。

3、啟動消費者:

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

這樣就打開了一個終端消費者,消費test?Topic中的消息,但目前該Topic中還沒有消息,因此這個進程會沒有任何反應,這是正常的。

4、另外打開一個終端,啟動生產者向test?Topic發送消息:

kafka-console-producer.sh --broker-list localhost:9092 --topic test

在這個生產者終端上輸入消息,然后按回車發送,發送完之后,如果剛才那個消費者終端上,能夠查看到消費了對應的消息的話,說明Kafka集群可以正常對消息進行生產和消費了。

生產者slave1發送消息:

消費者master接受到消息:

?

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

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

相關文章

UDP 多點通信

一、setsockopt/getsockopt 函數詳解 1. 函數原型 c #include <sys/socket.h> int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);…

說一說Node.js高性能開發中的I/O操作

眾所周知&#xff0c;在軟件開發的領域中&#xff0c;輸入輸出&#xff08;I/O&#xff09;操作是程序與外部世界交互的重要環節&#xff0c;比如從文件讀取數據、向網絡發送請求等。這段時間&#xff0c;也指導項目中一些項目的開發工作&#xff0c;發現在Node.js運用中&#…

Charles抓包并破解ProtoBuf請求

安裝Charles并抓包 如果是外網的需要root安裝一系列證書等&#xff0c;詳細見參考文章&#xff1a; 在雷電模擬器安卓7.0上使用Charles抓包詳細教程 遇到如下問題&#xff1a; 1.粘貼到目錄/system/etc/security/cacerts內&#xff0c;粘貼不了。需要打開這個 2.模擬器wifi打…

Odoo 18 安全組與訪問權限管理指南

Odoo 18 安全組與訪問權限管理指南 一、準備工作&#xff1a;在自定義模塊中創建安全配置文件 創建 security 文件夾 在自定義模塊內創建名為 security 的文件夾&#xff0c;用于存放安全組和訪問權限的定義文件。 二、定義模型訪問權限&#xff1a;ir.model.access.csv 文…

使用lldb查看Rust不同類型的結構

目錄 前言 正文 標量類型 復合類型——元組 復合類型——數組 函數 &str struct 可變數組vec Iter String Box Rc Arc RefCell Mutex RwLock Channel 總結 前言 筆者發現這個lldb挺好玩的&#xff0c;可以查看不同類型的結構&#xff0c;雖然這好像是C的東…

uniapp使用ui.request 請求流式輸出

正文&#xff1a; 在現代Web開發中&#xff0c;實時數據流和長時間運行的請求變得越來越常見&#xff0c;尤其是在處理大量數據或進行實時通信時。在這種情況下&#xff0c;uniapp 提供的 ui.request 請求方法可以幫助我們輕松實現流式輸出請求。本文將介紹如何使用 uni.reques…

如何恢復被勒索軟件加密的服務器文件(解密與備份策略)

針對勒索軟件加密文件的恢復和解密策略&#xff0c;結合當前數據安全最佳實踐&#xff0c;整理應對指南如下&#xff1a; 一、文件解密與修復方法 立即隔離設備? 斷開網絡連接并禁用共享功能&#xff0c;防止病毒橫向傳播 通過文件后綴異常&#xff08;如.locked、.wxx&…

JS,ES,TS三者什么區別

Java Script(JS)、ECMAScript(ES)、TypeScript(TS) 的核心區別與關聯的詳細解析,結合技術背景、設計目標及應用場景展開說明: 一、核心定義與關系 JavaScript(JS) 定義:一種動態類型、基于原型的腳本語言,由 Netscape 公司于 1995 年首次開發,用于網頁交互功能。角…

【MapReduce入門】深度解析MapReduce:定義、核心特點、優缺點及適用場景

目錄 1 什么是MapReduce&#xff1f; 2 MapReduce的核心特點 2.1 分布式處理 2.2 容錯機制 3 MapReduce的完整工作流程 4 MapReduce的優缺點分析 4.1 優勢 4.2 局限性 5 MapReduce典型應用場景 5.1 適用場景 5.2 不適用場景 6 MapReduce與其他技術的對比 7 總結 1…

【Redis】分布式鎖的實現

目錄 一、本地鎖存在的問題 二、redis實現分布式鎖原理 三、使用示例 四、鎖誤刪問題 解決思路 獲取鎖和釋放鎖代碼優化 五、鎖釋放的原子性問題 解決思路&#xff08;Lua腳本&#xff09; 使用流程 總結 大家好&#xff0c;我是千語。上期給大家講了使用悲觀鎖來解決…

Unity3D對象池設計與實現詳解

前言 在Unity3D中&#xff0c;對象池&#xff08;Object Pooling&#xff09;是一種優化技術&#xff0c;用于減少頻繁實例化和銷毀對象帶來的性能開銷。以下是對象池的詳細設計和實現步驟&#xff1a; 對惹&#xff0c;這里有一個游戲開發交流小組&#xff0c;希望大家可以點…

[Spring]-組件的生命周期

組件生命周期 認識組件的聲明周期 實驗1 通過Bean指定組件的生命周期 package com.guigu.spring.ioc.bean;Data public class User {private String username;private String password;private Car car;Autowiredpublic void setCar(Car car) {System.out.println("自動…

【golang】網絡數據包捕獲庫 gopacket

詳解 github.com/google/gopacket/pcap 包 github.com/google/gopacket/pcap 是 Go 語言中一個強大的網絡數據包捕獲庫&#xff0c;它是 gopacket 項目的一部分&#xff0c;提供了對 libpcap&#xff08;Linux/Unix&#xff09;和 WinPcap&#xff08;Windows&#xff09;的 G…

RBTree的模擬實現

1&#xff1a;紅黑樹的概念 紅?樹是?棵?叉搜索樹&#xff0c;他的每個結點增加?個存儲位來表?結點的顏?&#xff0c;可以是紅?或者??。通過對任何?條從根到葉?的路徑上各個結點的顏?進?約束&#xff0c;紅?樹確保沒有?條路徑會?其他路徑?出2倍&#xff0c;因…

React 第三十九節 React Router 中的 unstable_usePrompt Hook的詳細用法及案例

React Router 中的 unstable_usePrompt 是一個用于在用戶嘗試離開當前頁面時觸發確認提示的自定義鉤子&#xff0c;常用于防止用戶誤操作導致數據丟失&#xff08;例如未保存的表單&#xff09;。 一、unstable_usePrompt用途 防止意外離開頁面&#xff1a;當用戶在當前頁面有…

OSI 7層模型

OSI 7層模型&#xff1a; 1、物理層&#xff08;光纖等把電腦連接起來的物理手段&#xff09; 2、數據鏈路層&#xff08;以太網&#xff0c;確認0和1電信號的分組方式&#xff0c;負責MAC地址&#xff0c;MAC地址用于在網絡中唯一標示一個網卡&#xff0c;相當于網卡的身份證…

視頻編解碼學習十一之視頻原始數據

一、視頻未編碼前的原始數據是怎樣的&#xff1f; 視頻在未編碼前的原始數據被稱為 原始視頻數據&#xff08;Raw Video Data&#xff09;&#xff0c;主要是按照幀&#xff08;Frame&#xff09;來組織的圖像序列。每一幀本質上就是一張圖片&#xff0c;通常采用某種顏色格式…

Redis學習打卡-Day1-SpringDataRedis、有狀態無狀態

Redis的Java客戶端 Jedis 以 Redis 命令作為方法名稱&#xff0c;學習成本低&#xff0c;簡單實用。Jedis 是線程不安全的&#xff0c;并且頻繁的創建和銷毀連接會有性能損耗&#xff0c;因此推薦使用 Jedis 連接池代替Jedis的直連方式。 lettuce Lettuce是基于Netty實現的&am…

告別靜態配置!Spring Boo動態線程池實戰指南:Nacos+Prometheus全鏈路監控

一、引言 1.1 動態線程池的必要性 傳統線程池的參數&#xff08;如核心線程數、隊列容量&#xff09;通常通過配置文件靜態定義&#xff0c;無法根據業務負載動態調整。例如&#xff0c;在電商大促場景中&#xff0c;流量可能瞬間激增&#xff0c;靜態線程池容易因配置不合理導…

Flask如何讀取配置信息

目錄 一、使用 app.config 讀取配置 二、設置配置的幾種方式 1. 直接設置 2. 從 Python 文件加載 3. 從環境變量加載 4. 從字典加載 5. 從 .env 文件加載&#xff08;推薦開發環境用&#xff09; 三、讀取配置值 四、最佳實踐建議 在 Flask 中讀取配置信息有幾種常見方…