安裝3臺機器來作爲zookeeper集羣,3臺機器的ip分別是192.168.174.7,192.168.174.8,192.168.174.9。zookeeper由java編寫,所以在安裝zookeeper前先安裝jdk環境。
- 3臺機器上分別創建zookeeper的安裝目錄
mkdir -p /usr/local/software/zookeeper
- 官網下載tar包,3臺機器上分別分別解壓
tar -xvf zookeeper-3.4.11.tar.gz -C /usr/local/software/zookeeper/
- 3臺機器分別進入安裝目錄下,將zoo.sample.cfg重命名爲zoo.cfg,然後修改dataDir配置並添加dataLogDIr配置。dataDir是存儲快照文件的目錄,dataLogDir是存儲事務日誌的目錄,默認的事務日誌文件存儲在dataDir指定的目錄中,由於事務日誌的寫性能直接關係到zookeeper的性能,最好單獨指定。
dataDir=/opt/data/zookeeper/data
dataLogDir=/opt/data/zookeeper/logs - 開始集羣配置,修改3臺機器下的zoo.cfg文件,添加如下內容:
server.1=192.168.174.7:2888:3888 server.2=192.168.174.8:2888:3888 server.3=192.168.174.9:2888:3888
有n臺服務器就到server.n。後面分別配置ip地址和端口。2888端口是該服務器與集羣中的leader交換信息的端口,3888是選舉時服務器相互通信的端口。
- 分別在3臺機器的${dataDir}路徑下即上面第三步指定的dataDir目錄下創建myid文件,myid文件裏只寫入對應服務器的編號即上面第四步的n。在本配置中ip爲174.7的服務器在該文件下寫入1,其他的服務器對應寫入n值(2,3...)
mkdir -p /opt/data/zookeeper/data vim /opt/data/zookeeper/data/myid
- 爲了以後執行zookeeper命令方便,配置一下zookeeper的環境變量。
vim /etc/profile
在文件中添加如下內容:
export ZOOKEEPER_HOME=/usr/local/software/zookeeper/zookeeper-3.4.11 export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 分別啓動三臺zookeeper並查看各臺機器的角色,是leader或是follower
開啓zookeeper服務zkServer.sh start
查看zookeeper狀態
zkServer.sh status
當僅開啓第一臺時,查看狀態顯示未運行,當至少開啓兩臺時,集羣模式纔會正常,纔會選舉leader和follower,如果啓動報錯,查看${dataDir}下的zookeeper.out日誌文件。
注意事項:開啓集羣模式時,要注意防火牆的配置。