環境:centos7+jdk1.8
運行zookeeper需先安裝jdk:linux下jdk的安裝
1.下載:
mkdir /yuanyk
cd /yuanyk
wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz
2.解壓:
tar -zxvf zookeeper-3.4.12.tar-gz
3.修改配置文件
zookeeper-3.4.12/conf文件夾下zoo_sample.cfg文件爲官方提供的配置,我們copy過來,修改配置
cd zookeeper-3.4.12
cp conf/zoo_sample.cfg conf/zoo.cfg
節點在集羣中的角色: leader 、follower、 observer(只幹活不參與選舉)
共有服務器4臺:103-105爲leader或者folllwer,106爲observer
192.168.226.103
192.168.226.104
192.168.226.105
192.168.226.106(observer)
編輯zoo.cfg
103-105的配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/yuanyk/zookeeper-data
dataLogDir=/yuanyk/zookeeper-log
clientPort=2181
server.1=192.168.226.103:2888:3181
server.2=192.168.226.104:2888:3181
server.3=192.168.226.105:2888:3181
server.4=192.168.226.106:2888:3181:observer
106的配置
# zookeeper中最小的時間單位長度 (ms)
tickTime=2000
# follower節點啓動後與leader節點完成數據同步的時間,10個tickTime,共10*2000ms=20s
initLimit=10
# leader節點和follower節點進行心跳檢測的最大延時時間,5個tickTime,共10s
syncLimit=5
# 表示zookeeper服務器存儲快照文件的目錄
dataDir=/yuanyk/zookeeper-data
# 表示配置 zookeeper事務日誌的存儲路徑,默認指定在dataDir目錄下
dataLogDir=/yuanyk/zookeeper-log
# 表示客戶端和服務端建立連接的端口號
clientPort=2181
# 表示該節點是observer節點
peerType=observer
server.1=192.168.226.103:2888:3181
server.2=192.168.226.104:2888:3181
server.3=192.168.226.105:2888:3181
server.4=192.168.226.106:2888:3181:observer
server.myid=ip:port1:port2[:observer]
server.1=192.168.226.103:2888:3181
103服務器的myid=1
port1表示follower節點與leader節點交換信息的端口號
port2 如果leader節點掛掉了, 需要一個端口來重新選舉。
4.創建dataDir和dataLogDir
mkdir -p /yuanyk/zookeeper-log
mkdir -p /yuanyk/zookeeper-data
在103的dataDir目錄下創建myid文件,該文件只有一行,寫上1;
echo '1' > /yuanyk/zookeeper-data/myid
在104的dataDir目錄下創建myid文件,該文件只有一行,寫上2;
在105的dataDir目錄下創建myid文件,該文件只有一行,寫上3;
在106的dataDir目錄下創建myid文件,該文件只有一行,寫上4;
5.依次啓動四臺服務器上的zk
./bin/zkServer.sh start
啓動後會在當前路徑下產生zookeeper.out的日誌文件
6.查看節點轉態:
./bin/zkServer.sh status
follower,leader,observer節點運行結果如下
注意:若日誌中出現沒有到主機的路由的異常,先看四臺服務器之間網路是否聯通(ping ip),再看防火牆是否開放對應的端口(2888和3888),或者直接關閉防火牆