zookeeper安裝教程(zookeeper3.4.5爲例)

zookeeper有單機、僞集羣、集羣三種部署方式,可根據自己對可靠性的需求選擇合適的部署方式。下邊對這三種部署方式逐一進行講解。
 
一、單機安裝
1.1 下載
進入要下載的版本的目錄,選擇.tar.gz文件下載
 
1.2 安裝
使用tar解壓要安裝的目錄即可,以3.4.5版本爲例
這裏以解壓到/usr/myapp,實際安裝根據自己的想安裝的目錄修改(注意如果修改,那後邊的命令和配置文件中的路徑都要相應修改)
tar -zxf zookeeper-3.4.5.tar.gz -C /usr/myapp
 
1.3 配置
在主目錄下創建data和logs兩個目錄用於存儲數據和日誌:
cd /usr/myapp/zookeeper-3.4.5
mkdir datamkdir logs
 
在conf目錄下新建zoo.cfg文件,寫入以下內容保存:
tickTime=2000dataDir=/usr/myapp/zookeeper-3.4.5/datadataLogDir=/usr/myapp/zookeeper-3.4.5/logsclientPort=2181
 
1.4 啓動和停止
進入bin目錄,啓動、停止、重啓分和查看當前節點狀態(包括集羣中是何角色)別執行:
./zkServer.sh start./zkServer.sh stop./zkServer.sh restart
./zkServer.sh status
 
二、僞集羣模式
僞集羣模式就是在同一主機啓動多個zookeeper並組成集羣,下邊以在192.168.220.128主機上創3個zookeeper組集羣爲例。
將通過第一大點安裝的zookeeper,複製成zookeeper1/zookeeper2/zookeeper3三份
 
2.1 zookeeper1配置
zookeeper1配置文件conf/zoo.cfg修改如下:
複製代碼
tickTime=2000dataDir=/usr/myapp/zookeeper1/datadataLogDir=/usr/myapp/zookeeper1/logsclientPort=2181initLimit=5syncLimit=2server.1=192.168.220.128:2888:3888server.2=192.168.220.128:4888:5888server.3=192.168.220.128:6888:7888
複製代碼
zookeeper1的data/myid配置如下:
echo '1' > data/myid
 
2.2 zookeeper2配置
zookeeper2配置文件conf/zoo.cfg修改如下:
複製代碼
tickTime=2000dataDir=/usr/myapp/zookeeper2/datadataLogDir=/usr/myapp/zookeeper2/logsclientPort=3181initLimit=5syncLimit=2server.1=192.168.220.128:2888:3888server.2=192.168.220.128:4888:5888server.3=192.168.220.128:6888:7888
複製代碼
zookeeper2的data/myid配置如下:
echo '2' > data/myid
 
2.3 zookeeper3配置
zookeeper3配置文件conf/zoo.cfg修改如下:
複製代碼
tickTime=2000dataDir=/usr/myapp/zookeeper3/datadataLogDir=/usr/myapp/zookeeper3/logsclientPort=4181initLimit=5syncLimit=2server.1=192.168.220.128:2888:3888server.2=192.168.220.128:4888:5888server.3=192.168.220.128:6888:7888
複製代碼
 zookeeper3的data/myid配置如下:
echo '3' > data/myid
最後使用1.4的命令把三個zookeeper都啓動即可,啓動順序隨意沒要求。
 
三、集羣模式
集羣模式就是在不同主機上安裝zookeeper然後組成集羣的模式;下邊以在192.168.220.128/129/130三臺主機爲例。
將第1.1到1.3步中安裝好的zookeeper打包複製到129和130上,並都解壓到同樣的目錄下。
 
3.1 conf/zoo.cfg文件修改
三個zookeeper的conf/zoo.cfg修改如下:
複製代碼
tickTime=2000dataDir=/usr/myapp/zookeeper-3.4.5/datadataLogDir=/usr/myapp/zookeeper-3.4.5/logsclientPort=2181initLimit=5syncLimit=2server.1=192.168.220.128:2888:3888server.2=192.168.220.129:2888:3888server.3=192.168.220.130:2888:3888
複製代碼
對於129和130,由於安裝目錄都是zookeeper-3.4.5所以dataDir和dataLogDir不需要改變,又由於在不同機器上所以clientPort也不需要改變
所以此時129和130的conf/zoo.cfg的內容與128一樣即可。
 
3.2 data/myid文件修改
128 data/myid修改如下:
echo '1' > data/myid
129 data/myid修改如下:
echo '2' > data/myid
130 data/myid修改如下:
echo '3' > data/myid
最後使用1.4的命令把三個zookeeper都啓動即可,啓動順序隨意沒要求。
 
四、報錯及處理
應用連接zookeepr報錯:Session 0x0 for server 192.168.220.128/192.168.220.128:2181,unexpected error,closing socket connection and attempting reconnect;
                                        先看端口能否telnet通,如果通則使用./zkServer.sh status查看zk是否確實已啓動,沒啓查看bin/zookeeper.out中的報錯。
bin/zookeeper.out中報錯:“zookeeper address already in use”;顯然端口被佔用,要麼是其他進程佔用了配置的端口,要麼是上邊配置的clientPort和server中的端口有重複。
bin/zookeeper.out中報錯:Cannot open channel to 2 at election address /192.168.220.130:3888;這應該只是組成集羣的130節點未啓動,到130啓動起來zk即會正常。
 
發佈了9 篇原創文章 · 獲贊 17 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章