zookeeper單機和集羣安裝

http://zookeeper.apache.org/releases.html zookeeper下載地址

版本:zookeeper-3.4.6.tar.gz

本次安裝目錄:/software/zookeeper-3.4.6/

單機模式安裝

單機安裝很簡單,解壓、運行就可以了

1、在/software/zookeeper-3.4.6/目錄中解壓zk

   tar -zxvf  zookeeper-3.4.6.tar.gz

2、將zk配置zoo_sample.cfg 拷貝一份,並命名爲:zoo.cfg

cd  /software/zookeeper-3.4.6/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg

3、運行zk

cd zookeeper-3.4.6/bin/
sh zkServer.sh start

通過上述兩個命令就可以啓動一個單機的zk server
在這裏插入圖片描述
4、運行zk客戶端

sh zkCli.sh -server localhost:2181

通過這個命令就可以啓動一個zk的客戶端 在這裏插入圖片描述
這樣單機的zk就搭建完成,下面將介紹集羣zk

集羣安裝(僞集羣)

1、集羣安裝建立在單機安裝的基礎上,因爲電腦配置原因所以我在一臺虛擬機上模擬集羣安裝,首先先來了解一下zk集羣的一些概念然後再單機的基礎上進行搭建集羣

注意 zk的集羣最少需要zn+1臺機器
在zk集羣中包含三種集羣角色
leader      用來處理事務請求並統一協調發起提案投票,負責與follower進行通信
follower    處理非事務請求並且參與提案投票,與leader進行數據交換
observer    處理非事務請求不參與投票,與leader進行數據交換,主要用來擴展zk性能

2、集羣搭建開始,在home目錄下創建一個zookeeper目錄,然後拷貝三份zookeeper-3.4.6並且重命名爲
zookeeper-3.4.6-01
zookeeper-3.4.6-02
zookeeper-3.4.6-03

cd /home
mkdir zookeeper
cp -r  /software/zookeeper-3.4.6  /home/zookeeper/
mv /home/zookeeper-3.4.6/ /home/zookeeper/zookeeper-3.4.6-01
cp -r  /software/zookeeper-3.4.6  /home/zookeeper/
mv /home/zookeeper-3.4.6/ /home/zookeeper/zookeeper-3.4.6-02
cp -r  /software/zookeeper-3.4.6  /home/zookeeper/
mv /home/zookeeper-3.4.6/ /home/zookeeper/zookeeper-3.4.6-03

查看一下我的路徑
zookeeper-3.4.6-01
在這裏插入圖片描述
zookeeper-3.4.6-02
在這裏插入圖片描述
zookeeper-3.4.6-03
在這裏插入圖片描述
3、在每個zk服務下創建兩個文件夾 data 和 logs

cd /home/zookeeper/zookeeper-3.4.6-01
mkdir data
mkdir logs
cd /home/zookeeper/zookeeper-3.4.6-02
mkdir data
mkdir logs
cd /home/zookeeper/zookeeper-3.4.6-03
mkdir data
mkdir logs

4、修改每個zk服務的配置文件,這裏先配置,下面會有配置文件的詳細表示信息
修改zookeeper-3.4.6-01

cd /home/zookeeper/zookeeper-3.4.6-01/conf
vim zoo.cfg

在這裏插入圖片描述
修改zookeeper-3.4.6-02

cd /home/zookeeper/zookeeper-3.4.6-02/conf
vim zoo.cfg

在這裏插入圖片描述
修改zookeeper-3.4.6-03

cd /home/zookeeper/zookeeper-3.4.6-03/conf
vim zoo.cfg

在這裏插入圖片描述
配置文件詳解:

tickTime=2000 
代表zk中的時間單位2000毫秒,zk中所有時間都是按這個單位來計算的。

initLimit=10
這個配置項是用來配置 Zookeeper 接受客戶端(這裏所說的客戶端不是用戶連接 Zookeeper 服務器的客戶端,
而是 Zookeeper 服務器集羣中Leader 連接到 Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。
當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 服務器還沒有收到客戶端的返回信息,
那麼表明這個客戶端連接失敗。這裏表示10個ticktime
syncLimit=5
這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,
最長不能超過多少個 tickTime 的時間長度。這個裏表示5個ticktime
dataDir=/home/zookeeper/zookeeper-3.4.6-02/data
存儲快照文件snapshot的目錄。默認情況下,事務日誌也會存儲在這裏。
建議同時配置參數dataLogDir, 事務日誌的寫性能直接影響zk性能。
dataLogDir=/home/zookeeper/zookeeper-3.4.6-02/logs
事務日誌輸出目錄。儘量給事務日誌的輸出配置單獨的磁盤或是掛載點,這將極大的提升ZK性能
clientPort=2182
客戶端連接server的端口,即對外服務端口,一般設置爲2181吧

server.1=127.0.0.1:2880:3880
server.2=127.0.0.1:2881:3881
server.3=127.0.0.1:2882:3882
這裏1、2、3表示每個服務的標識,與myid文件裏的數字對應
192.168.2.101每個服務的ip
第一個 端口號用於Follower 和Leader之間的數據同步和其它通信端口
第二個 端口用來表示Leader選舉過程中投票通信端口

這裏注意:搭建僞集羣第一個端口號、第二個端口號不能與clientPort端口相同,否則報錯、下面貼出報錯內容、這個錯誤佔時不知道爲什麼,後續看源碼肯定可以知道答案
在這裏插入圖片描述

5、爲每一個服務配置myid文件,myid文件存在於data目錄下
zookeeper-3.4.6-01的myid的值爲1
zookeeper-3.4.6-02的myid的值爲2
zookeeper-3.4.6-03的myid的值爲3
這裏的值要與配置文件中server.id的id值對應起來

cd /home/zookeeper/zookeeper-3.4.6-01
vim myid

在這裏插入圖片描述

cd /home/zookeeper/zookeeper-3.4.6-02
vim myid
cd /home/zookeeper/zookeeper-3.4.6-03
vim myid

注意,請確保每個server的myid文件中id數字不同,並且和server.id=host:port:port中的id一致。另外,id的範圍是0~255。 我這裏用的vim來創建的myid文件,大家可以通過echo快速創建

6、啓動每個zk服務

cd /home/zookeeper/zookeeper-3.4.6-01
./zkServer.sh start
cd /home/zookeeper/zookeeper-3.4.6-02
./zkServer.sh start
cd /home/zookeeper/zookeeper-3.4.6-03
./zkServer.sh start

7、查看狀態

 zkServer.sh status

在這裏插入圖片描述

9、查看zk服務輸出信息

cd /home/zookeeper/zookeeper-3.4.6-01
tail -500 zookeeper.out

10、停止zk

進入每個zk的bin目錄下執行
./zkServer.sh stop

更多請參考:http://itindex.net/detail/40187-zookeeper-管理員-管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章