下載zookeeper和jdk
下載地址:
zookeeper : http://mirror.bit.edu.cn/apache/zookeeper/
jdk: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解壓
解壓
tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz -C /usr/local/soft
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local/soft
創建軟連接
建立了一個redis目錄的軟鏈接,這樣做是爲了不把zookeeper目錄固定在指定版本上,有利於Zookeeper未來版本升級,算是安裝軟件的一種好習慣。
創建完軟連接相當於windows上面的快捷鍵,可以直接從/usr/local/jkd 進入到指定目錄
ln -s /usr/local/soft/jdk1.8.0_231 /usr/local/jdk
ln -s /usr/local/soft/apache-zookeeper-3.5.6-bin /usr/local/zookeeper
配置環境變量
修改環境變量
vim /etc/profile
在文件最後加入下面內容
#set zookeeper environment
export ZK_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZK_HOME/bin
#set JDK and JRE environment
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=.$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
使配置生效
souce /etc/profile
配置Zookeeper
修改zookeeper配置文件
cd /usr/local/zookeeper/conf
cp zoo_sample.conf zoo.conf
vim zoo.conf
修改並加入如下內容
dataDir=/usr/local/zookeeper/data
clientPort=2812
server.0=192.168.31.129:2888:3888
server.1=192.168.31.130:2888:3888
server.2=192.168.31.131:2888:3888
圖片說明如下
上面紅色框住的內容即是我們修改的內容:
①、tickTime:基本事件單元,這個時間是作爲Zookeeper服務器之間或客戶端與服務器之間維持心跳的時間間隔,每隔tickTime時間就會發送一個心跳;最小 的session過期時間爲2倍tickTime
②、dataDir:存儲內存中數據庫快照的位置,除非另有說明,否則指向數據庫更新的事務日誌。注意:應該謹慎的選擇日誌存放的位置,使用專用的日誌存儲設備能夠大大提高系統的性能,如果將日誌存儲在比較繁忙的存儲設備上,那麼將會很大程度上影像系統性能。
③、client:監聽客戶端連接的端口。
④、initLimit:允許follower連接並同步到Leader的初始化連接時間,以tickTime爲單位。當初始化連接時間超過該值,則表示連接失敗。
⑤、syncLimit:表示Leader與Follower之間發送消息時,請求和應答時間長度。如果follower在設置時間內不能與leader通信,那麼此follower將會被丟棄。
⑥、server.A=B:C:D
A:其中 A 是一個數字,表示這個是服務器的編號;
B:是這個服務器的 ip 地址;
C:Leader選舉的端口;
D:Zookeeper服務器之間的通信端口。
我們需要修改的第一個是 dataDir ,在指定的位置處創建好目錄。
第二個需要新增的是 server.A=B:C:D 配置,其中 A 對應下面我們即將介紹的myid 文件。B是集羣的各個IP地址,C:D 是端口配置。
創建配置文件所必須的文件
寫入服務序號
第一個服務器 192.168.31.129
mkdir /usr/local/zookeeper/data
touch /usr/local/zookeeper/data/myid
vim /usr/local/zookeeper/data/myid
## 輸入內容
0
第二個服務器 192.168.31.130
mkdir /usr/local/zookeeper/data
touch /usr/local/zookeeper/data/myid
vim /usr/local/zookeeper/data/myid
## 輸入內容
1
。。。以此類推跟配置文件中相匹配
啓動 Zookeeper
#啓動ZK服務:
zkServer.sh start
#停止ZK服務:
zkServer.sh stop
#重啓ZK服務:
zkServer.sh restart
#查看ZK服務狀態:
zkServer.sh status
Zookeeper集羣需要每臺挨個啓動。
啓動集羣的時候,集羣數量啓動沒有超過一半,狀態會有錯誤提示,當集羣啓動數量超過一半就會自動轉爲正常狀態,並且此臺使集羣進入正常工作狀態的服務器會成爲leader角色,集羣中其他服務器的角色爲fllower。
如果啓動有錯誤到 /usr/local/zookeeper/log文件下查看即可,百度。。。。
啓動後