前面分享了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

