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