【Zookeeper搭建】Zookeeper分布式集群搭建完整指南

Zookeeper分布式集群搭建

(一)克隆前準備工作

一、時鐘同步

步驟:

1、輸入date命令可以查看當前系統時間,可以看到此時系統時間為PDT(部分機器或許為EST),并非中國標準時間。我們在中國地區,因此要把系統時間改為CST(中國標準時間)

2、修改時間類型:

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

修改完后再次使用date命令查看是否更改成功。

二、Zookeeper的安裝和部署

步驟:

1、使用XFTP把安裝包zookeeper-3.4.6.tar.gz傳輸到虛擬機主目錄(/home/hadoop)下,然后解壓:

cd ~  
tar -zxvf zookeeper-3.4.6.tar.gz  

2、配置環境變量,在.bashrc文件中添加內容。先執行以下命令打開.bashrc文件:

vim ~/.bashrc  

在文件末尾加上以下語句:

export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.6  
export PATH=$ZOOKEEPER_HOME/bin:$PATH  

添加完成后保存,然后控制臺執行以下命令刷新即可:

source ~/.bashrc  

3、修改zoo.cfg配置文件:

該文件需要新建,并保存在zookeeper安裝路徑的conf子目錄中:

cd ~/zookeeper-3.4.6/conf  
vim zoo.cfg  

4、大概配置內容如下:

initLimit=10  
syncLimit=5  
#此處為數據保存目錄,需自行創建  
dataDir=/home/hadoop/zkdata  
#此處為日志保存目錄,需自行創建  
dataLogDir=/home/hadoop/zklog  
clientPort=2181  
server.1=master:2888:3888  
server.2=slave1:2888:3888  
server.3=slave2:2888:3888  

[注意:此處標紅的兩組數字,前面的1、2、3是每個節點服務的編號,后面的主機名是對應節點服務器的IP地址,這里的配置需要和后面克隆后的配置信息對應上。]{.underline}

[節點服務編號的值是一個整型數字,且不能重復。]{.underline}

5、創建數據和日志目錄:

mkdir /home/hadoop/zkdata  
mkdir /home/hadoop/zklog  

此時,可以開始克隆虛擬機了。

(二)克隆Linux虛擬機

前言:

克隆開始之前,可以保存一下虛擬機的快照,或者完整地備份一下自己的虛擬機,這樣就不必擔憂后續集群使用過程中出現嚴重的問題需要重來。

一、克隆出兩臺虛擬機

步驟:

1、使用stop-all.sh命令關閉hadoop集群后,關閉Linux虛擬機;

2、右鍵選中master,管理-克隆;

3、在彈出的克隆虛擬機向導中,選擇克隆自虛擬機中的當前狀態;

4、創建完整克隆;

5、虛擬機名稱建議為slave1、slave2;位置選擇F盤你自己的目錄;

6、點擊完成開始克隆;

二、把三臺虛擬機都啟動起來

步驟:略

(三)克隆虛擬機后配置

一、為兩臺新的虛擬機修改IP地址

由于是克隆的虛擬機,因此他們的配置都是一樣的,所以開機以后第一步,先把兩臺slave機器的ip地址修改一下,否則IP地址會發生沖突。

只需修改最后的部分即可,即192.168.203.XXX中標紅的一節;設置方式參考前面教程。

二、為兩臺新的虛擬機修改主機名

步驟:

1、修改slave1主機的/etc/hostname文件,將其主機名修改為slave1

sudo vim /etc/hostname  

2、重復上述步驟,也把slave2的主機名修改為slave2

三、為三臺機器配置hosts文件

步驟:

1、先在master主機修改/etc/hosts文件,建立主機名與ip地址的映射:

sudo vim /etc/hosts  

在末尾添加兩行:

192.168.203.XXX slave1  
192.168.203.XXX slave2  

其中的ip地址要對應上一步你自己為每一臺主機設置的ip地址。

2、為另外兩臺slave1、slave2主機也重復上面步驟。

四、為master主機配置NTP服務器,用于時鐘同步

步驟:

1、配置NTP服務器:

我們選擇master節點來配置NTP服務器,后續其他節點定時同步master節點的時間。CentOS系統一般已經安裝有NTP服務,因此直接修改配置文件ntp.conf即可,該文件位于/etc文件夾內:

sudo vim /etc/ntp.conf  

打開后如下:

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳{width=“4.813379265091863in” height=“3.261459973753281in”}

2、修改一:

找到#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap這一行,然后在其下方添加:

restrict 192.168.240.129 mask 255.255.255.0 nomodify notrap  

其中標紅的ip地址需改成你master主機的ip地址。

3、修改二:

注釋掉下面的4行server域名配置:

#server 0.centos.pool.ntp.org iburst  
#server 1.centos.pool.ntp.org iburst  
#server 2.centos.pool.ntp.org iburst  
#server 3.centos.pool.ntp.org iburst  

4、修改三:

注釋完以后在下方添加兩行:

server 127.127.1.0  
fudge 127.127.1.0 stratum 10  

5、修改完后大體如圖所示:

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳{width=“4.6292465004374455in” height=“1.8431157042869641in”}

6、在master執行以下命令啟動服務:

systemctl start ntpd  

7、執行以下命令可以讓master每次啟動機器時,都自動開啟NTP服務:

chkconfig ntpd on  

8、在其他節點配置定時同步時間:

使用Linux的crontab命令配置定時任務,定時執行ntpdate時間同步命令即可。

在slave1、slave2都使用crontab -e命令打開vim編輯器編輯定時命令腳本,在其中添加此行命令:

0-59/10 * * * * sudo /usr/sbin/ntpdate master  

其中標紅的需改成你上述配置了ntp服務器的主機名。

設置完成后,后續slave1、slave2將定期每10分鐘自動與master主機同步時間。

五、創建Zookeeper各節點服務編號

在各個機器的/home/hadoop/zkdata目錄,創建一個myid文件,然后分別輸入服務編號即可,下面以master為例設置,執行以下命令:

cd /home/hadoop/zkdata  
touch myid  
echo 1 > myid  

其中編號1即為master機器的編號,此處必須按照前面Zookeeper安裝與部署步驟4中對應的主機與編號進行設置。

自行重復上述步驟,把三臺機器都配置完畢。

六、啟動Zookeeper集群

在每一臺機器上,分別執行以下命令啟動Zookeeper服務:

zkServer.sh start  

一段時間后使用以下命令查看狀態:

zkServer.sh status  

如果Zookeeper集群中,出現一個節點為Leader,另外兩個為Follower,則說明Zookeeper集群安裝部署成功。

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

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

相關文章

MVC基礎概念及相應代碼示例

(舊的)代碼實現方法 一個功能模塊的代碼邏輯(顯示處理,數據處理,邏輯判定)都寫在一起(耦合) (新的)代碼MVC分層實現方法 顯示部分實現(View視圖) 數據處理實…

nginx優化(持續更新!!!)

1.調整文件描述符 # 查看當前系統文件描述符限制 ulimit -n# 永久修改文件描述符限制 # 編輯 /etc/security/limits.conf 文件,添加以下內容 * soft nofile 65535 * hard nofile 65535# 編輯 /etc/sysctl.conf 文件,添加以下內容 fs.file-max 655352.調…

apache連接池機制討論

apache連接池的連接有效性 server一般會配置keep-alive超時時間,過了這個時間還沒新請求到來,則關閉連接。客戶端從連接池里拿出連接時,會檢查一下連接是否已關閉,如已關閉,會丟棄掉該連接,并嘗試從連接池…

【QT5 多線程示例】條件變量

文章目錄 條件變量使用 wakeOne()使用 wakeAll() 條件變量 QT的條件變量類是QWaitCondition,有wakeOne() 和 wakeAll() 兩個方法 wakeOne():僅喚醒一個等待的線程。wakeAll():喚醒所有等待的線程。 使用 wakeOne() https://github.com/Bi…

備賽藍橋杯之第十六屆模擬賽第1期職業院校組第四題:世紀危機(人口增長推算)

提示:本篇文章僅僅是作者自己目前在備賽藍橋杯中,自己學習與刷題的學習筆記,寫的不好,歡迎大家批評與建議 由于個別題目代碼量與題目量偏大,請大家自己去藍橋杯官網【連接高校和企業 - 藍橋云課】去尋找原題&#xff0…

從零構建大語言模型全棧開發指南:第三部分:訓練與優化技術-3.2.3預訓練任務設計:掩碼語言建模(MLM)與下一句預測(NSP)

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 3.2.3 預訓練任務設計:`掩碼語言建模(MLM)`與下一句預測(NSP)1. 掩碼語言建模(`Masked Language Modeling, MLM`)1.1 MLM的核心原理與數學形式1.2 高級掩碼優化技術1.2.1 `Span Masking(SpanBER…

OpenBMC:BmcWeb 生效路由2 Trie字典樹

OpenBMC:BmcWeb 生效路由1 基于method分類路由_openbmc web-CSDN博客 可以看到,在internalAdd中: std::vector<BaseRule*> rules; rules.emplace_back(ruleObject); trie.add(rule, static_cast<unsigned>(rules.size() - 1U)); ruleObject首先被放入了每個meth…

Appium中元素定位之一組元素定位API

應用場景 和定位一個元素相同&#xff0c;但如果想要批量的獲取某個相同特征的元素&#xff0c;使用定位一組元素的方式更加方便 在 Appium 中定位一組元素的 API 與定位單個元素的 API 類似&#xff0c;但它們返回的是一個元素列表&#xff08;List<MobileElement>&am…

第五周日志-重新學匯編(2)

機器語言 匯編語言(直接在硬件上工作——硬件系統結構&#xff09;&#xff1a; 1.機器語言 每一種微處理器硬件設計和內部結構不同&#xff08;決定了電信號不同&#xff0c;進而需要不同的機器指令&#xff09; #早期通過紙帶機/卡片機輸入計算機&#xff0c;進行運算 2…

【9】Strongswan collections —— enumerator

//以目錄枚舉為例子&#xff0c;說明enumerator&#xff0c;從源碼剝離可運行 #include <stdio.h> #include <stdbool.h> #include <dirent.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h&…

談談對spring IOC的理解,原理和實現

一、IoC 核心概念 1. 控制反轉&#xff08;Inversion of Control&#xff09; 傳統編程中對象自行管理依賴&#xff08;主動創建&#xff09;&#xff0c;而IoC將控制權轉移給容器&#xff0c;由容器負責對象的創建、裝配和管理&#xff0c;實現依賴關系的反向控制。 2. 依賴…

【Hugging Face 開源庫】Diffusers 庫 —— 擴散模型

Diffusers 的三個主要組件1. DiffusionPipeline&#xff1a;端到端推理工具__call__ 函數callback_on_step_end 管道回調函數 2. 預訓練模型架構和模塊UNetVAE&#xff08;Variational AutoEncoder&#xff09;圖像尺寸與 UNet 和 VAE 的關系EMA&#xff08;Exponential Moving…

甘肅旅游服務平臺+論文源碼視頻演示

4 系統設計 4.1系統概要設計 甘肅旅游服務平臺并沒有使用C/S結構&#xff0c;而是基于網絡瀏覽器的方式去訪問服務器&#xff0c;進而獲取需要的數據信息&#xff0c;這種依靠瀏覽器進行數據訪問的模式就是現在用得比較廣泛的適用于廣域網并且沒有網速限制要求的小程序結構&am…

路由選型終極對決:直連/靜態/動態三大類型+華為華三思科配置差異,一張表徹底講透!

路由選型終極對決&#xff1a;直連/靜態/動態三大類型華為華三思科配置差異&#xff0c;一張表徹底講透&#xff01; 一、路由&#xff1a;互聯網世界的導航系統二、路由類型深度解析三者的本質區別 三、 解密路由表——網絡設備的GPS華為&#xff08;Huawei&#xff09;華三&a…

【RAG綜述系列】之 RAG 相關背景和基本原理

系列文章&#xff1a; 【RAG綜述系列】之 RAG 相關背景和基本原理 【RAG綜述系列】之 RAG 特點與挑戰以及方法與評估 【RAG綜述系列】之 RAG 先進方法與綜合評估 【RAG綜述系列】之 RAG 應用和未來方向 正文&#xff1a; 檢索增強生成&#xff08;Retrieval-Augmented Gen…

CMake 構建的Qt 項目中的構建套件的配置

在Qt 框架中&#xff0c;使用CMake 構建工具時&#xff0c;需要自己給構建套件添加相關配置&#xff0c;否則已經添加的構建套件將不可選擇使用。 創建CMake 項目后&#xff0c;如果打開項目配置時&#xff0c;出現如下構建套件不可選的情況&#xff0c; 需要先確認是否安裝…

本地化智能運維助手:基于 LangChain 數據增強 和 DeepSeek-R1 的K8s運維文檔檢索與問答系統 Demo

寫在前面 博文內容為基于 LangChain 數據增強 和 Ollams 本地部署 DeepSeek-R1實現 K8s運維文檔檢索與問答系統 Demo通過 Demo 對 LEDVR 工作流&#xff0c; 語義檢索有基本認知理解不足小伙伴幫忙指正 &#x1f603;,生活加油 我看遠山&#xff0c;遠山悲憫 持續分享技術干貨…

Kotlin when 表達式完全指南:從基礎到高級的12種實戰用法

掌握 when 的靈活運用&#xff0c;告別繁瑣的 if-else 鏈 以下是 Kotlin 中 when 表達式的 12種核心用法 的全面總結&#xff0c;涵蓋基礎到高級場景&#xff0c;并附帶實用示例&#xff1a; 一、基礎用法 1. 替代 Java 的 switch-case when (x) {1 -> println("一&qu…

新加坡 PSB 認證:安全標準、證書特點及申請注意事項

目錄 什么是PSB認證&#xff1f; 涉及產品范圍 強制性認證產品類別 自愿性認證產品 認證項目與測試標準 1. 安全測試 2. 電磁兼容性&#xff08;EMC&#xff09;測試 3. 能效測試&#xff08;特定產品&#xff09; 認證流程詳解 第一步&#xff1a;準備階段 第二步&a…

UE4學習筆記 FPS游戲制作26 UE中的UI

文章目錄 幾個概念創建一個UI藍圖添加UI獲取UI的引用 切換設計器和UI藍圖將UI添加到游戲場景錨點軸點slotSizeToContent三種UI數據更新方式函數綁定屬性綁定事件綁定 九宮格分割圖片 幾個概念 UMG&#xff1a;UE的UI編輯器 slate UI: UE的UI的編輯語言 創建一個UI藍圖 右鍵用…