Zookeeper 叢集安裝配置
阿新 • • 發佈:2021-11-22
Zookeeper 是什麼?
Zookeeper是一個分散式協調服務的開源框架。主要用來解決分散式叢集中應用系統的一致性問題,例如怎樣避免同時操作同一資料造
成髒讀的問題。
- ZooKeeper本質上是一個分散式的小檔案儲存系統。提供基於類似於檔案系統的目錄樹方式的資料儲存,並且可以對樹中的節點進行有效管理。
- ZooKeeper提供給客戶端監控儲存在zk內部資料的功能,從而可以達到基於資料的叢集管理。諸如:統一命名服務(dubbo)、分散式配置管理(solr的配置集中管理)、分散式訊息佇列(sub/pub)、分散式鎖、分散式協調等功能。
Zookeeper 環境搭建
Zookeeper的搭建方式
Zookeeper 安裝方式有三種,單機模式和叢集模式以及偽叢集模式。
- 單機模式:Zookeeper只執行在一臺伺服器上,適合測試環境;
- 偽叢集模式:就是在一臺伺服器上執行多個 Zookeeper 例項;
- 叢集模式:Zookeeper 運行於一個叢集上,適合生產環境,這個計算機叢集被稱為一個“集合體”
Zookeeper叢集搭建
下載安裝
Master 節點中
下載並解壓
首先我們下載穩定版本的zookeeper http://zookeeper.apache.org/releases.html
wget http://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz -P /opt/software tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt/servers cd /opt/servers mv apache-zookeeper-3.7.0-bin zookeeper-3.7.0
修改配置並建立 data 和 log 目錄
# 建立 data 和 log 目錄
mkdir -p /opt/servers/zookeeper-3.7.0/data/log
# 進入配置目錄
cd /opt/servers/zookeeper-3.7.0/conf
# 複製一份配置模版並重命名
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
# 修改 dataDir=/opt/servers/zookeeper-3.7.0/data # 新增 dataLogDir=/opt/servers/zookeeper-3.7.0/data/log # 開啟註釋 #ZK提供了自動清理事務日誌和快照檔案的功能,這個引數指定了清理頻率,單位是小時 autopurge.purgeInterval=1 # 新增叢集配置 # server.伺服器ID=伺服器IP地址:伺服器之間通訊埠:伺服器之間投票選舉端 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888
新增myid配置
1.在zookeeper的data目錄下建立一個myid檔案,內容為1,這個檔案就是記錄每個伺服器的ID
cd /opt/servers/zookeeper-3.7.0/data
echo 1 > myid
將Zookeeper分發到其他節點
cd /opt/servers
rsync-script zookeeper-3.7.0/
修改slave1和slave2的myid
# slave1 節點
echo 2 > /opt/servers/zookeeper-3.7.0/data/myid
# slave2 節點
echo 3 > /opt/servers/zookeeper-3.7.0/data/myid
啟動 Zk 例項
三個節點都要執行
/opt/servers/zookeeper-3.7.0/bin/zkServer.sh start
檢視Zk啟動情況
/opt/servers/zookeeper-3.7.0/bin/zkServer.sh status
群起 Zk 指令碼
因為每次都要在三臺機子上執行啟動命令,所以自己我們就自己寫一個啟動指令碼
cd ~
mkdir shells
cd shells
vim zk.sh
**將以下檔案寫如到 zk.sh 中
#!/bin/sh
echo "$1 zookeeper server..."
if(($#==0));then
echo "no param";
exit;
fi
# 此處寫上你的三臺
hosts="master slave1 slave2"
for host in $hosts
do
echo "$host server ${1}ing..."
ssh $host "source /etc/profile;/opt/servers/zookeeper-3.7.0/bin/zkServer.sh $1"
done
賦予執行許可權
chmod 777 zk.sh
啟動 / 停止 zookeeper 叢集
# 啟動
~/shells/zk.sh start
# 停止
~/shells/zk.sh stop
# 檢視服務狀態
~/shells/zk.sh status
啟動成功後所有機器上都有這個服務
jps