Zookeeper介紹
ZooKeeper是一個分布式的,開放原始碼的分布式應用程式協調服務,是Google的Chubby一個開源的實作,是Hadoop和Hbase的重要組件,它是一個為分布式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分布式同步、組服務等,
ZooKeeper的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的介面和性能高效、功能穩定的系統提供給用戶,
ZooKeeper包含一個簡單的原語集,提供Java和C的介面,
ZooKeeper代碼版本中,提供了分布式獨享鎖、選舉、佇列的介面,代碼在zookeeper-3.4.3\src\recipes,其中分布鎖和佇列有Java和C兩個版本,選舉只有Java版本,
總結:Zookeeper負責服務的協調調度.當客戶端發起請求時,回傳正確的服務器地址.
前置環境
1.ZooKeeper是由java寫的,運行時需要java jdk的支持,所以首先你的linux環境上需要有java環境,
關于Java jdk在linux上的安裝配置可參見https://blog.csdn.net/qq_45273552/article/details/109997711
2.這里筆者用的是“終端神器”—mobaxterm 來操作的linux,筆者也建議小伙伴們使用這一款比較全能的終端工具,(因為下文中有些操作和這個工具有關),
想用mobaxterm的小朋友可以來這里下載使用:
鏈接:https://pan.baidu.com/s/1sQ7N_ApPn59qJvgK__38hQ
提取碼:ctgb
3.下載ZooKeeper linux安裝包
網址:http://mirrors.hust.edu.cn/apache/zookeeper/

也可下載我網盤里的版本3.6.0版本:
鏈接:https://pan.baidu.com/s/1GAAhD4Lykk1IFPrEb25F0A
提取碼:2aeq
開始安裝:
1.將zookeeper安裝包匯入linux系統中(利用moxbaxterm終端工具)

2.解壓安裝包
命令:tar -xvf apache-zookeeper-3.6.0-bin.tar.gz

3.使用命令 mv apache-zookeeper-3.6.0-bin zookeeper將其改名為zookeeper便于操作

4.修改組態檔
在zookeeper根目錄下創建檔案夾data/log
命令:mkdir data log

5.跳入conf目錄中修改組態檔
復制組態檔并且修改名稱
cp zoo_sample.cfg zoo.cfg

6.利用mobaxterm工具修改zoo.cfg中的配置項

7.將12,13行的dataDir和datalogDir的路徑改為剛剛創建的data和log檔案夾的位置

8.啟動zookeeper
跳轉到bin目錄中 zk啟動關閉命令如下.
開啟:sh zkServer.sh start 或者 ./zkServer.sh start
關閉:sh zkServer.sh stop
狀態:sh zkServer.sh status

Zookeeper集群安裝
提醒:集群安裝之前請務必關閉zookeeper服務,(否則搭建程序中會出現埠占用)
1.3.1準備檔案夾
在zookeeper根目錄中創建新的檔案夾zkCluster.

2.創建zk1/zk2/zk3檔案夾

3.在每個檔案夾里創建data/log檔案夾.
mkdir {zk1,zk2,zk3}/{data,log}

4.添加myid檔案
分別在zk1/zk2/zk3中的data檔案夾中創建新的檔案myid.其中的內容依次為1/2/3,與zk節點號對應.
比如:vim myid
編輯1
保存退出

5.進入conf檔案,將其中的zoo.cfg分別復制三份,分別命名為zoo1.cfg,zoo2.cfg,zoo3.cfg,

6.分別修改這三個檔案中的dataDir和dataLogDir的路徑,分別指向剛剛在zkCluster集群中創建的data目錄的路徑
在下方加入當前埠和集群IP地址:通信埠:選舉埠



7. ZK集群測驗
到目錄下輸入命令:(三臺服務器的話至少啟動兩臺,只啟動一臺會報錯)
sh zkServer.sh start zoo1.cfg
sh zkServer.sh start zoo2.cfg
sh zkServer.sh stop zoo1.cfg
sh zkServer.sh status zoo1.cfg
1)當只啟動一臺時報錯

2)再啟動一個后,發現zoo1變成了follower
3)查看zoo2的情況,其為leader

1.3.6關于zookeeper集群說明
Zookeeper集群中leader負責監控集群狀態,follower主要負責客戶端鏈接獲取服務串列資訊.同時參與投票.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/234232.html
標籤:其他
