前面分享了zookeeper的基本知識,下面分享有關zookeeper安裝的知識。

1、下載

zookeeper的官網是:https://zookeeper.apache.org/

在官網上找到下載連結,

這裡使用的是二進位制安裝包,使用的是3.7.0的版本。

2、安裝

2.1、環境

os:我這裡是在虛擬機器環境中的centos7-64進行安裝。

JDK:zookeeper需要JDK的支援,需要事先配置好java的環境變數。

2.2、安裝

zookeeper的安裝可以分為單機版和叢集版,單機版是隻有一個節點,叢集版使用三個節點。

2.2.1、單機版

2.2.1.1、修改配置

單機版是隻有一個節點的zookeeper程序,把下載好的安裝包上傳到對應得linux伺服器目錄上,對檔案進行解壓,解壓後的檔案如下,

這裡有兩個比較重要的目錄bin和conf,bin目錄存放的是zookeeper啟動指令碼,conf下存放的是配置檔案。首先修改配置檔案,在conf下有三個檔案,

zoo_sample.cfg是一個樣例檔案,zookeeper啟動的時候預設使用的是zoo.cfg,這裡從zoo_sample.cfg複製一個名為zoo.cfg即可,然後修改zoo.cfg檔案,整個zoo.cfg檔案是這樣的

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1 ## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

我這裡僅修改了下面的配置,

dataDir=/home/dev/datas/zookeeper3.7.0/single
2.2.1.2、啟動

在zookeeper的目錄下,執行下面的命令

bin/zkServer.sh start

看到下面的內容,說明已經啟動成功

2.2.2、叢集版

2.2.2.1、修改配置

由於我這裡沒有多餘的物理機,所以在一臺虛擬機器上部署多個zk程序,配置如下,

地址 myid 對外埠 通訊埠 選舉埠 dataDir
本機 1 2182 2382 2482
/home/dev/datas/zookeeper3.7.0/cluster/node1
本機 2 2183 2383 2483
/home/dev/datas/zookeeper3.7.0/cluster/node2
本機 3 2184 2384 2484
/home/dev/datas/zookeeper3.7.0/cluster/node3

有了上面的配置,只需要在conf資料夾下,分別建立3個配置資料夾,然後放置zoo.cfg檔案即可,分別按照上面的配置進行修改,在啟動的時候分別制定不同的配置檔案,

然後分別修改node1、node2、node3中的zoo.cfg檔案,修改的配置項如下,node1

dataDir=/home/dev/datas/zookeeper3.7.0/cluster/node1
clientPort=2182
initLimit=5
syncLimit=2
server.1=127.0.0.1:2382:2482
server.2=127.0.0.1:2383:2483
server.3=127.0.0.1:2384:2484

node2

dataDir=/home/dev/datas/zookeeper3.7.0/cluster/node2
clientPort=2183
initLimit=5
syncLimit=2
server.1=127.0.0.1:2382:2482
server.2=127.0.0.1:2383:2483
server.3=127.0.0.1:2384:2484

node3

dataDir=/home/dev/datas/zookeeper3.7.0/cluster/node3
clientPort=2184
initLimit=5
syncLimit=2
server.1=127.0.0.1:2382:2482
server.2=127.0.0.1:2383:2483
server.3=127.0.0.1:2384:2484

之後再dataDir目錄下還要建立一個myid的文字檔案,檔案的內容分別為node1下為1、node2下為2、node3下為3

2.2.2.2、啟動

經過了上面對叢集模式下的配置,下面啟動叢集中的3個節點,方式如下

bin/zkServer.sh --config conf/node1 start

看下面的圖片,

按照上面的方式分別啟動node1、node2、node3節點。

3、測試

上面,我們分別使用單機版和叢集版按照了zookeeper,那麼怎麼測試是否安裝成功

3.1、單機版

在單機版下,如果沒有改埠直接使用即可,

bin/zkCli.sh 

出現下面的畫面說明啟動成功

3.2、叢集版

3.2.1、驗證單節點是否啟動成功

在叢集模式下,由於沒有使用預設的埠,這裡需要使用下面的命令,

#登入node3節點
bin/zkCli.sh -server 127.0.0.1:2183

3.2.2、驗證叢集是否正常同步資料

對於叢集測試,還可以在node1上新建目錄,然後在node3上檢查是否存在該目錄

看node3下的目錄

這樣就可以看出zookeeper叢集是正常的。

3.2.3、驗證叢集狀態

可以通過檢視叢集的命令檢視整個叢集的狀態

 bin/zkServer.sh --config conf/node1 status

看下node2的狀態

以上幾種方式說明zookeeper叢集正常。

有不正之處,歡迎指正。參考:

https://blog.csdn.net/dandandeshangni/article/details/80558383

https://www.cnblogs.com/8899man/p/5710191.html