ZooKeeper的介紹、搭建及簡單使用
阿新 • • 發佈:2022-02-12
ZooKeeper的介紹、搭建及簡單使用
一、ZooKeeper簡潔
1、zookeeper簡介 動物管理員 Apache ZooKeeper致力於開發和維護開源伺服器,實現高度可靠的分散式協調。 2、什麼是ZooKeeper? ZooKeeper是一種集中式服務,用於維護配置資訊,命名,提供分散式同步和提供組服務。所有這 些型別的服務都以分散式應用程式的某種形式使用。每次實施它們都需要做很多工作來修復不可避 免的錯誤和競爭條件。由於難以實現這些型別的服務,應用程式最初通常會吝嗇它們,這使得它們 在變化的情況下變得脆弱並且難以管理。即使正確完成,這些服務的不同實現也會在部署應用程式 時導致管理複雜性。 3、zookeeper功能 (1)儲存資料 (2)監聽 4、zookeeper工作機制 基於觀察者模式設計的分散式服務管理框架 5、zookeeper的儲存結構 目錄樹結構 6、zookeeper應用場景 (1)叢集統一配置管理 (2)叢集統一命名服務 (3)叢集統一管理 (4)伺服器的動態上下線感知 (5)負載均衡 7、ZooKeeper叢集中的節點一般為奇數個(>=3)
2、HDFS的HA(High Available:高可用)
凡是用到HA的地方都有ZK的蹤影
(1)高可用需要考慮的兩點:
主備切換(當主節點故障了,備節點變成主節點)
元資料同步
(2)zk:指zookeeper,負責協調,監控
(3)在ZK中沒有SNN
二、ZooKeeper的搭建
1、上傳安裝包到master並解壓
切換到壓縮包所在的目錄,然後解壓
tar -xvf zookeeper-3.4.6.tar.gz
2、配置環境變數
先切換到該目錄:cd zookeeper-3.4.6/ vim /etc/profile ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6 $ZOOKEEPER_HOME/bin source /etc/profile
3、修改配置檔案
cd conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改
dataDir=/usr/local/soft/zookeeper-3.4.6/data
指令碼最低端增加
server.0=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888
4、新建data目錄
切換到目錄zookeeper-3.4.6中
mkdir data
cd data
touch myid
5、同步到其它節點
切換到目錄packages中 scp -r zookeeper-3.4.6/ node1:`pwd` scp -r zookeeper-3.4.6/ node2:`pwd` 分別配置node1和node2的環境變數 切換到目錄zookeeper-3.4.6 vim /etc/profile ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6 $ZOOKEEPER_HOME/bin
6、編輯myid
cd /usr/local/soft/zookeeper-3.4.6/data/
vim myid
master,node1,node2分別加上0,1,2
7、啟動zk
zkServer.sh start 三臺都需要執行
zkServer.sh status 檢視狀態
通過jps可以檢視zk的程序:ZK的程序顯示為QuorumPeerMain,三臺都有
當有一個leader的時候說明ZK啟動成功
## 停止zk
zkServer.sh stop 三臺都需要執行
8、連線zk
zkCli.sh---------預設連線本地的ZK
zkCli.sh -server 伺服器:對外服務的埠----------連線遠端的ZK
舉例:連線node1的遠端ZK
zkCli.sh -server node1:2181
連線成功後:
[zk: note01:2181(CONNECTED) 0]
zk是一個目錄結構 ,每個節點可以存資料,同時可以有子節點
通過help可以檢視ZK的shell命令
常用的命令:增刪改查
增 creat
刪 rmr------刪除節點
delete----只能刪除沒有子節點的節點
改 set
查 ls
獲取 get
退出ZK quit
重置zk
1、殺掉所有zk程序
kiil -9 pid
2、刪除data目錄下的version檔案, 所有節點都要刪除
rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2