1. 程式人生 > 其它 >ZooKeeper的介紹、搭建及簡單使用

ZooKeeper的介紹、搭建及簡單使用

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