zookeeper的安裝與配置
1、到官網https://zookeeper.apache.org/releases.html#download下載zookeeper安裝包,我使用的是zookeeper-3.4.13.tar.gz。
2、拷貝到linux伺服器,並解壓。命令:tar –zxvf zookeeper-3.4.13.tar.gz
3、將zookeeper/conf目錄下的zoo_sample.cfg重新命名為zoo.cfg。
備份指令:cp zoo_sample.cfg zoo.cfg
重新命名:mv zoo_sample.cfg zoo.cfg
4、修改dataDir的存放目錄。
5、配置伺服器節點,在zoo.cfg的後面新增如下程式碼(如果只有四臺伺服器):
server.<伺服器編號,從1開始>=<伺服器主機名>:<當前伺服器與leader伺服器交換資料的埠>:<叢集中選舉leader使用的埠>。如下:
server.1=yc01:2888:3888
server.2=yc02:2888:3888
server.3=yc03:2888:3888
如果是作為觀察者,不參與投票,則需要在後面加上observer標識。如:
server.4=yc04:2888:3888:observer
另外,需要在zoo.cfg中新增宣告。在伺服器節點配置前面加上:
peerType=observer。說明這個節點作為觀察者。
initLimit : 此配置表示允許follower連線並同步到leader的初始化時間,它以tickTime的倍數來表示。當超過設定倍數的tickTime時間,則連線失敗。
syncLimit : Leader伺服器與follower伺服器之間資訊同步允許的最大時間間隔,如果超過次間隔,預設follower伺服器與leader伺服器之間斷開連結。
tickTime : Leader與follower之間互動的基本時間單元(ms)
dataDir : 儲存zookeeper資料路徑
dataLogDir : 儲存zookeeper日誌路徑,當此配置不存在時預設路徑與dataDir一致
clientPort : 客戶端訪問zookeeper時經過伺服器端時的埠號
maxClientCnxns : 限制連線到zookeeper伺服器客戶端的數量
server.id=host:port:port : 表示了不同的zookeeper伺服器的自身標識,作為叢集的一部分,每一臺伺服器應該知道其他伺服器的資訊。使用者可以從“server.id=host:port:port” 中讀取到相關資訊。在伺服器的data(dataDir引數所指定的目錄)下建立一個檔名為myid的檔案,這個檔案的內容只有一行,指定的是自身的id值。比如,伺服器“1”應該在myid檔案中寫入“1”。這個id必須在叢集環境中伺服器標識中是唯一的,且大小在1~255之間。這一樣配置中,zoo1代表第一臺伺服器的IP地址。第一個埠號(port)是從follower連線到leader機器的埠,第二個埠是用來進行leader選舉時所用的埠。所以,在叢集配置過程中有三個非常重要的埠:clientPort:2181、port:2888、port:3888。
使用單機模式時需要注意,在這種配置方式下,如果zookeeper伺服器出現故障,zookeeper服務將會停止。
6、在資料目錄中建立id標誌。
在資料目錄下,建立一個myid檔案,內容為server.後面的這個編號
7、將zookeeper目錄傳送到其它伺服器(使用root使用者)。
scp –r /home/navy/zookeeper/zookeeper-3.4.13 [email protected]:’pwd’/ home/navy/zookeeper/
scp –r /home/navy/zookeeper/zookeeper-3.4.13 [email protected]:’pwd’/ home/navy/zookeeper/
8、在其它服務中建立資料目錄和myid檔案。
9、可將zookeeper下的bin目錄新增到環境變數中。
10、傳送配置檔案
scp /etc/profile [email protected]:/etc/profile、scp /etc/profile [email protected]:/etc/profile
11、啟動zookeeper。zookeeper/bin/zkServer.sh start。
zkServer.sh start|stop|restart|status
12、檢視執行狀態。jps –ml
可以看到,QuorumPeerMain已經處於執行狀態。
13、執行telnet命令,連線上伺服器之後,執行stat命令進行服務啟動的驗證,如果出現類似下面的資訊則說明服務已經正常啟動,一般情況下不需要驗證,啟動即可正常執行。
14、執行zkServer.sh status。檢視zkServer的執行狀態以及mode是follower還是leader