大數據系統架構實踐(一):Zookeeper集群部署

大數據系統架構實踐(一):Zookeeper集群部署

文章目錄

  • 大數據系統架構實踐(一):Zookeeper集群部署
  • 一、Zookeeper簡介
  • 二、部署前準備
  • 三、部署Zookeeper集群
    • 1. 下載并解壓安裝包
    • 2. 配置zoo.cfg
    • 3. 設置日志目錄
    • 4. 集群編號
    • 5. 啟動zookeeper集群
    • 5. 驗證集群狀態
  • 總結


隨著微服務架構和分布式系統的快速發展,系統中各個服務之間的協調和狀態管理成為架構設計的重要一環。Zookeeper 作為 Apache 生態下的核心組件,提供了高可用的分布式協調服務,在 Hadoop、Kafka、HBase 等大數據平臺中都扮演著不可替代的角色。

在本系列中,我們將圍繞 Zookeeper 在大數據系統中的作用與部署實踐展開介紹。本篇作為第一篇,將聚焦于 Zookeeper 的核心概念、常見應用場景及基礎部署方式,為后續深入理解其在分布式架構中的地位打下基礎。

一、Zookeeper簡介

Zookeeper 是一個開源的分布式協調服務,主要用于維護配置信息、命名服務、分布式同步和集群管理。它的設計初衷是為分布式系統提供一致性保障,并簡化復雜的協調任務。
Zookeeper 的 核心特性 包括:

  • 強一致性:所有客戶端都能讀取到最新的數據狀態
  • 原子性:一次操作要么成功,要么失敗
  • 順序性:所有更新按照順序執行
  • 高可用性:通過集群部署實現故障容錯與快速恢復

Zookeeper 使用類 Unix 文件系統的層級數據模型,節點稱為 ZNode 。每個 ZNode 都可以存儲數據,并可具有子節點。常見節點類型:

  • 持久節點(Persistent)
  • 臨時節點(Ephemeral)
  • 順序節點(Sequential)

這種結構為服務注冊、分布式鎖、選舉等提供了基礎。

二、部署前準備

Zookeeper 是一個典型的強一致性系統,采用的是 ZAB(Zookeeper Atomic Broadcast)協議,其核心思想是多數派寫成功即認為成功。因此:

  • Zookeeper 集群必須部署在奇數臺服務器上(3、5、7…)
  • 最小推薦部署為 3 臺節點,此時允許容忍 1 臺節點宕機仍可繼續提供服務
  • 如果使用 2 臺節點,當 1 臺掛掉時,剩下的無法形成多數,整個集群將無法寫入

因此,3 節點集群在資源和高可用性之間提供了合理平衡,是生產環境中最常見的部署方式。
多數派投票原則:n = 2f + 1,f 是允許容忍的故障節點數量。3 臺機器允許 1 臺故障,5 臺允許 2 臺故障。

? 三臺服務器的配置與角色

節點名稱主機名ip地址說明
mastermaster192.168.100.1集群節點之一,參與選舉
slave1slave1192.168.100.2集群節點之一,參與選舉
slave2slave2192.168.100.3集群節點之一,參與選舉

? JDK 依賴環境
Zookeeper 是用 Java 編寫的,運行前請確保已安裝 JDK 1.8 或以上版本

三、部署Zookeeper集群

1. 下載并解壓安裝包

# 下載地址(以3.4.10版本為例)
https://archive.apache.org/dist/zookeeper/# 解壓移動
tar xf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 /usr/local/zookeeper

2. 配置zoo.cfg

cat > /usr/local/zookeeper/conf/zoo.cfg <<-EOF
tickTime=10000  # 心跳時間,ms
dataDir=/usr/local/zookeeper/data  # 數據存儲路徑
clientPort=2181  # 端口號
initLimit=5  # Follower初始化連接Leader的超時時間限制
syncLimit=2  # Follower與Leader之間同步響應的最大延遲時間
server.1=master:2888:3888  # server.x 對應的是 myid 值
server.2=slave1:2888:3888 
server.3=slave2:2888:3888
maxClientCnxns=1000  # 允許的最大連接數
maxSessionTimeout=300000  # 會話的最大超時時間,ms
EOF

3. 設置日志目錄

編輯日志配置文件,指定日志輸出目錄

mkdir -p /usr/local/zookeeper/logsvim /usr/local/zookeeper/conf/log4j.properties
# 修改如下變量:
# zookeeper.log.dir=/usr/local/zookeeper/logs
# zookeeper.tracelog.dir=/usr/local/zookeeper/logsvim /usr/local/zookeeper/bin/zkEnv.sh
# 設置 ZOO_LOG_DIR=/usr/local/zookeeper/logs

4. 集群編號

每臺節點的 myid 是其在 zoo.cfg 中的 server ID,并將目錄同步至其他節點

mkdir -p /usr/local/zookeeper/data
echo "3" > /usr/local/zookeeper/data/myid
scp -rp /usr/local/zookeeper root@slave2:/usr/local/  &>/dev/null
echo "2" > /usr/local/zookeeper/data/myid
scp -rp /usr/local/zookeeper root@slave1:/usr/local/  &>/dev/null
echo "1" > /usr/local/zookeeper/data/myid

5. 啟動zookeeper集群

# master
/usr/local/zookeeper/bin/zkServer.sh start
# slave1
ssh slave1 "/usr/local/zookeeper/bin/zkServer.sh start"
# slave2
ssh slave2 "/usr/local/zookeeper/bin/zkServer.sh start"

5. 驗證集群狀態

# 檢查端口是否監聽
netstat -tnlp | grep 2181
# 查看進程是否正常
ps -ef | grep QuorumPeerMain
# 查看集群狀態
/usr/local/zookeeper/bin/zkServer.sh status

總結

🚀 本文介紹了 Zookeeper 的核心概念與應用場景,并基于 3 臺服務器完成了 Zookeeper 集群的部署與配置。通過設置 zoo.cfg 配置文件、myid 標識、日志目錄和啟動腳本,我們搭建了一個基本的高可用協調服務,為后續大數據系統提供穩定的元數據和狀態支持。
?? 值得注意的是,Zookeeper 的 Leader 是通過選舉產生的,部署過程中不應人為指定具體節點為 Leader 或 Follower,所有節點都是平等參與選舉的角色。
📌 當前部署方式適用于 Hadoop、Kafka、HBase 等組件依賴的協調服務環境,是分布式系統架構的基礎支撐。
? 下一篇文章中,我們將繼續構建大數據系統核心組件 —— Hadoop 分布式文件系統(HDFS)與資源調度框架(YARN),并實現其與 Zookeeper 的集成與聯動,逐步完善整個大數據平臺的底座架構。

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

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

相關文章

《道德經》:探尋古老智慧中的哲學之光

我強烈推薦4本可以改變命運的經典著作&#xff1a; 《壽康寶鑒》在線閱讀白話文《欲海回狂》在線閱讀白話文《陰律無情》在線閱讀白話文《了凡四訓》在線閱讀白話文 《道德經》作為道家經典&#xff0c;短短五千言&#xff0c;卻字字珠璣&#xff0c;蘊含著超越時空的哲學智慧。…

科技賦能民生:中建海龍為民生改善注入新動力

在社會發展的進程中&#xff0c;民生改善始終占據著核心地位。住房、基礎設施建設等民生領域的進步&#xff0c;直接關系到民眾的生活質量與幸福感。中建海龍科技有限公司&#xff08;以下簡稱“中建海龍”&#xff09;作為建筑行業的創新引領者&#xff0c;憑借其強大的科技實…

BI 賦能,打造數據可視化看板新體驗

BI 賦能&#xff0c;打造數據可視化看板新體驗 引言 在當今數字化時代&#xff0c;數據成為企業決策的重要依據。如何從海量的數據中提取有價值的信息&#xff0c;并以直觀、易懂的方式呈現出來&#xff0c;是企業面臨的重要挑戰。商業智能&#xff08;BI&#xff09;工具的出…

vue2設置自定義域名跳轉

需求&#xff1a;首次登錄域名為aa.com&#xff0c;之后登錄系統后在系統內某個模塊設置三級域名為second&#xff0c;之后退出登錄到aa.com,登錄進入系統后域名自動變為second.aa.com&#xff0c;最后退出的域名也是second.aa.com&#xff0c;通過不同的域名配置動態的登錄頁面…

“地標界愛馬仕”再拓疆域:世酒中菜聯袂赤水金釵石斛定義中國GI

“地標界愛馬仕”再拓疆域&#xff1a;世酒中菜聯袂赤水金釵石斛&#xff0c;定義中國GI奢侈品新高度 ——中世國際與貴州斛滿多戰略合作簽約儀式在赤水舉行 赤水市&#xff0c;2025年5月18日——被譽為“地標界愛馬仕”的頂級奢侈品牌世酒中菜 &#xff08;世界酒中國菜全球…

零基礎、大白話,Vue3全篇通俗療法(上):基礎知識【看得懂】

前言 最近有個小朋友想了解Vue前端技術&#xff0c;但他只懂一些HTML基礎&#xff0c;讓我用最簡單的方式講解。于是就有了這篇面向初學者的博文。 老手請繞行&#xff0c;本文專為新手準備。如果發現用詞不當的地方歡迎留言指正&#xff0c;覺得對新手有幫助的話請收藏點贊。 …

JavaScript性能優化實戰

JavaScript性能優化實戰技術文章大綱 性能優化的重要性 解釋為什么性能優化對用戶體驗和業務指標至關重要討論核心Web指標&#xff08;LCP、FID、CLS&#xff09;與JavaScript性能的關系 代碼層面優化 減少DOM操作&#xff0c;使用文檔片段或虛擬DOM避免頻繁的重繪和回流&a…

考研英語作文評分標準專業批改

考研英語作文專業批改經過官方評分標準嚴格對標&#xff0c;徹底改變你的作文提升方式&#xff0c;打開 懂試帝小程序 直達批改。 &#x1f3af; 批改服務核心優勢 ? 官方標準嚴格對標 完全按照考研英語官方五檔評分制&#xff0c;從內容完整性、組織連貫性、語言多樣性到語…

智能群躍小助手發布說明

1.初次登陸需要授權碼 2.社群維護頁面 3.產品營銷頁面

SAM2論文解讀-既實現了視頻的分割一切,又比圖像的分割一切SAM更快更好

code&#xff1a;https://github.com/facebookresearch/sam2/tree/main demo:https://sam2.metademolab.com/ paper:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/ 這是SAM 這是SAM2 Facebook出品&#xff0c;繼SAM在圖像上分割…

WPF 的RenderTransform使圖標旋轉180°

只是記錄一下思想&#xff1a; 本來想找兩個對稱的圖標給按鈕用&#xff0c;但是另一個找不到&#xff0c;就想到可不可以旋轉180實現另一個圖標的效果&#xff0c;問了一下DeepSeek&#xff1a; <Path Width"30" Height"30" Margin"1"Data…

Matplotlib 繪圖庫使用技巧介紹

目錄 前言 Matplotlib 簡介 快速入門 圖形結構解剖 常用繪圖函數 子圖與布局 單行多列子圖&#xff1a; 網格布局&#xff1a; 自定義位置&#xff1a; 樣式與標注 中文字體與科學計數 圖例、網格、坐標軸 動態圖與動畫 三維繪圖 常見問題與技巧 前言 Matplotli…

【Java基礎算法】1.相向指針練習

??博客主頁:程序員葵安 ??感謝大家點贊????收藏?評論??? 一、兩數之和 Ⅱ(167) 1.1 題目介紹 給你一個下標從 1 開始的整數數組 numbers ,該數組已按 非遞減順序排列 ,請你從數組中找出滿足相加之和等于目標數 target 的兩個數。如果設這兩個數分別是 nu…

“開放原子園區行”太原站:openKylin以開源之力,賦能產業發展

在數字化與智能化浪潮驅動下&#xff0c;開源技術已成為全球科技創新與產業升級的核心引擎&#xff0c;并為培育新質生產力開辟關鍵路徑。為加速開源生態建設&#xff0c;賦能區域經濟高質量發展&#xff0c;由開放原子開源基金會、山西省工業和信息化廳、山西轉型綜合改革示范…

【Elasticsearch】自定義相似性算法

在 Elasticsearch 中&#xff0c;可以通過自定義相似度算法來優化搜索結果的相關性。以下是幾種常見的自定義相似度算法的方法&#xff1a; 1. 使用內置相似度算法 Elasticsearch 默認使用 BM25 算法&#xff0c;但也可以切換到其他內置的相似度算法&#xff0c;如 TF-IDF 或布…

【對比】DeepAR 和 N-Beats

1. DeepAR 1.1 核心思想 提出者&#xff1a;亞馬遜&#xff08;Amazon&#xff09;團隊于2018年提出。目標&#xff1a;針對多變量時間序列進行概率預測&#xff08;Probabilistic Forecasting&#xff09;&#xff0c;輸出預測值的分布&#xff08;如均值、方差、置信區間&a…

Spring Boot單元測試終極指南:從環境搭建到分層測試實戰

Spring Boot測試終極指南&#xff1a;從環境搭建到分層測試實戰 掌握MockMvc與分層測試策略&#xff0c;讓你的代碼質量提升一個維度 一、環境搭建&#xff1a;Maven依賴深度解析 Spring Boot測試的核心依賴在pom.xml中配置如下&#xff1a; <dependencies><!-- 核心…

卷積類型總結

1. 標準卷積 (Convolution) 原理&#xff1a; 一個包含 K 個濾波器的卷積層&#xff08;每個濾波器大小為 FxF x C_in&#xff09;在輸入特征圖上滑動。在每個位置&#xff0c;濾波器與輸入圖像的局部區域進行逐元素相乘再求和&#xff08;點積運算&#xff09;&#xff0c;得到…

HP iLO使用實例:Integrated Lights-Out

文章目錄 參考名詞解釋iLODMTF SMASH CLP命令HP提供的命令VSPBIOS啟動順序BIOS指令啟動時報的電源錯誤如果ilo登陸不上去參考 ilo命令 https://support.hpe.com/hpesc/public/docDisplay?docId=c03334058 名詞解釋 iLO 從字面理解:Integrated Lights-Out,就是整合燈出;…

【前端隱蔽 Bug 深度剖析:SVG 組件復用中的 ID 沖突陷阱】

前端隱蔽 Bug 深度剖析&#xff1a;SVG 組件復用中的 ID 沖突陷阱 創建時間: 2025/6/20 類型: &#x1f50d; Bug 深度分析 難度: ????? 高級 關鍵詞: SVG、ID 沖突、Vue 組件、隱蔽 Bug、技術分析 &#x1f4d6; 引言 在前端開發的世界里&#xff0c;有一類 Bug 特別令…