參考官方文檔:https://zookeeper.apache.org/doc/r3.4.14/zookeeperStarted.html#sc_Download
前提:部署好java環(huán)境
一、單機部署
1、下載官網(wǎng)文檔版安裝包
#wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.14.tar.gz
#tar zxf zookeeper-3.4.14.tar.gz -C /data/app/zookeeper
2、配置文件配置
#mkdir -pv /data/data/zookeeper/{data,logs}
#cd /data/app/zookeeper/conf
#cp zoo_sample.cfg zoo.cfg
#cat zoo.cfg #創(chuàng)建配置文件
tickTime=2000
dataDir=/data/data/zookeeper/data
clientPort=2181
tickTime:ZooKeeper使用的基本時間單位(以毫秒為單位)。它用于做心跳,最小會話超時將是tickTime的兩倍。
dataDir:存儲內(nèi)存數(shù)據(jù)庫快照的位置,除非另有說明,否則為數(shù)據(jù)庫更新的事務(wù)日志。
clientPort:偵聽客戶端連接的端口
3、啟動測試
#useradd -M -s /sbin/nologin zookeeper
#chown -R zookeeper.zookeeper /data/app/zookeeper /data/data/zookeeper
以普通用戶啟動腳本
#!/bin/bash zkFile='/data/app/zookeeper/bin/zkServer.sh' cd /data/app/zookeeper/bin/ case $1 in start) su zookeeper -s /bin/bash -c "${zkFile} start" ;; stop) ${zkFile} stop ;; restart) ${zkFile} stop su zookeeper -s /bin/bash -c "${zkFile} start" ;; status) ${zkFile} status;; upgrade) ${zkFile} upgrade;; print-cmd) ${zkFile} print-cmd;; start-foreground) ${zkFile} start-foreground;; *) echo "參數(shù)錯誤!" ;; esac
二、單機偽集群部署
先按照單機部署步驟,先下載解壓程序文件。
1、創(chuàng)建配置文件
#cd /data/app/zookeeper/conf
#cat zoo1.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/data/zookeeper1/data
clientPort=2181
dataLogDir=/data/data/zookeeper1/logs
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
#cat zoo2.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/data/zookeeper2/data
clientPort=2182
dataLogDir=/data/data/zookeeper2/logs
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
#cat zoo3.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/data/zookeeper3/data
clientPort=2183
dataLogDir=/data/data/zookeeper3/logs
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
2.創(chuàng)建數(shù)據(jù)文件夾和日志文件夾
#mkdir -pv /data/data/zookeeper{1..3}/{data,logs}
#echo "1" > /data/data/zookeeper1/data/myid
#echo "2" > /data/data/zookeeper2/data/myid
#echo "3" > /data/data/zookeeper3/data/myid
#chown -R zookeeper.zookeeper /data/app/zookeeper /data/data/zookeeper*
3、創(chuàng)建普通用戶啟動腳本
#!/bin/bash zkFile='/data/app/zookeeper/bin/zkServer.sh' confFile='/data/app/zookeeper/conf' cd /data/app/zookeeper/bin/ case $1 in start) su zookeeper -s /bin/bash -c "${zkFile} start ${confFile}/${2}" ;; stop) ${zkFile} stop ${confFile}/${2};; restart) ${zkFile} stop ${confFile}/${2} su zookeeper -s /bin/bash -c "${zkFile} start ${confFile}/${2}" ;; status) ${zkFile} status ${confFile}/${2};; upgrade) ${zkFile} upgrade ${confFile}/${2};; print-cmd) ${zkFile} print-cmd ${confFile}/${2};; start-foreground) ${zkFile} start-foreground ${confFile}/${2};; *) echo "參數(shù)錯誤!" ;; esac
# ./zk-cluster.sh start zoo2.cfg
# ./zk-cluster.sh start zoo1.cfg
# ./zk-cluster.sh start zoo3.cfg
4、測試
# ./zkCli.sh -server 127.0.0.1:2183
[zk: 127.0.0.1:2183(CONNECTED) 4] create /test test123
Created /test
[zk: 127.0.0.1:2183(CONNECTED) 5] quit
# ./zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /
[zookeeper, test]
[zk: 127.0.0.1:2181(CONNECTED) 1] get /test
test123
cZxid = 0x400000004
ctime = Mon Apr 29 14:17:49 CST 2019
mZxid = 0x400000004
mtime = Mon Apr 29 14:17:49 CST 2019
pZxid = 0x400000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
三、多服務(wù)器集群部署(至少三臺服務(wù)器)
1、每臺服務(wù)器按照步驟一的安裝部署下載解壓,然后配置文件更改為:
#cat zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/data/zookeeper/data
clientPort=2181
dataLogDir=/data/data/zookeeper/logs
server.1=172.16.2.5:2888:3888
server.2=172.16.2.6:2888:3888
server.3=172.16.2.7:2888:3888
2、創(chuàng)建文件和文件夾
數(shù)據(jù)文件夾、日志文件夾、myid文件
3、使用步驟一單機普通用戶啟動腳本分別啟動每個服務(wù)器的服務(wù)。