1. 程式人生 > >ZooKeeper的部署與執行

ZooKeeper的部署與執行

     這篇博文主要介紹一下通過單機和叢集兩種方式部署一個ZooKeeper,以及如何將其順利的執行起來。


     一、系統環境


     通常對Java開源產品而言,在部署與執行之前,總是需要搭建一個合適的環境,通常包括作業系統和Java環境兩個方面。


     1.作業系統

     ZooKeeper對不同平臺的支援都很好,在現在絕大多數主流的作業系統上都能夠正常執行,如果Linux/MacOSX/Winndows等。


     2.Java環境

     ZooKeeper使用Java語言編寫,因此它的執行環境需要Java環境的支援,也就是需要有JDK的支援。


     二、叢集與單機


     ZooKeeper有兩種執行模式:叢集模式和單機模式,下面將分別對兩種執行模式的安裝和配置進行簡要講解。


     1.叢集模式

     現在,我們開始講解如何使用三臺機器來搭建一個ZooKeeper叢集。首先,我們假設已經準備好三臺Linux互相聯網的Linux機器,它們的IP地址分別為IP1,IP2和IP3.


     ①下載Java執行環境,確保你已經安裝了JDK1.6或者更高版本的JDK.


     ②下載ZooKeeper安裝包。


     下載地址為http://zookeeper.apache.org/releases.html.使用者可以選擇穩定版本(stable)進行下載,下載完成後會得到一個檔名類似於zookeeper-x.x.x.tar.gz的檔案,然後使用tar 命令解壓下載好的檔案。


                 


                                           圖一 ZooKeeper的目錄結構 


     ③配置檔案zoo.cfg

     初次使用ZooKeeper,需要將%ZK_HOME%/conf目錄下的zoo_sample.cfg檔案重新命名為zoo.cfg,並且按照如下程式碼進行簡單配置即可:


                                        

                                          圖二 叢集模式下配置zoo.cfg                                             


     關於ZooKeeper的引數配置,有幾點需要注意的地方:

     a.在叢集模式下,叢集中的每臺機器都需要感知到整個叢集中的機器序號。同事,在每臺ZooKeeper機器上,我們都需要在資料目錄(dataDir引數指定的那個目錄)下建立一個myid檔案,該檔案只有一行內容,並且是一個數字,即對應於每臺機器上的ServerID數字。

     b.在ZooKeeper的設計中,叢集中所有機器上zoo.cfg檔案的內容都應該是一直的。

     c.要確保每個伺服器的myid檔案中的數字不同,並且和自己所在機器的zoo.cfg中server.id=host:port:port的id值一致。另外,id的範圍是1到255.


     ④建立myid檔案


     在dataDir所配置的目錄下,建立一個名為myid的檔案,在該檔案的第一行寫上一個數字,和zoo.cfg當前機器的編號對應上。


     ⑤按照相同的步驟,為其他機器都配置上zoo.cfg和myid檔案。


     ⑥啟動伺服器。


     所有選項都已經基本配置完畢,可以使用%ZK_HOME%/bin目錄下的zkServer.sh指令碼進行伺服器的啟動:如下


                      

                                          圖三   啟動ZooKeeper伺服器


     2.單機模式


     單機模式和叢集模式類似,只需要修改zoo.cfg的配置即可:


                                         

                                          圖四 單機模式下的zoo.cfg配置


     三、執行和停止服務

     

     我們可以使用ZooKeeper%ZK_HOME%/bin目錄下的將本來執行和停止ZooKeeper服務:


     1.執行服務

     


     2.停止服務

     


     至此,便是對使用ZooKeeper的簡單介紹。下一篇博文將給繼續介紹一下如果使用客戶端對ZK進行操作。