1. 程式人生 > >windows安裝zookeeper 單機,偽叢集,叢集(叢集未測試)

windows安裝zookeeper 單機,偽叢集,叢集(叢集未測試)

參考文章:

1. 首先我們需要去官網下載zookeeper,官網連結如下:

我們下載使用的是 zookeeper-3.4.5 版本。

下載好之後找個地方解壓,解壓完成後如下:

單機模式:

1. 下載解壓完後,我們就需要進入到conf目錄進行配置檔案的修改:

1)複製一份zoo_sample.cfg檔案並直接貼上來建立副本:

2) 將此副本改名為zoo.cfg,並通過文字編輯器開啟進行編輯修改,推薦notepad++文字編輯器,好用:

我們需要將配置檔案中的dataDir路徑從預設的Linux系統路徑修改為windows中你想要存放zookeeper資料的目錄。

同時我們可以新增dataLogDir屬性以此來指定zookeeper的日誌檔案存放目錄。

注意,路徑分隔符都是"\\"不是"\"。

示例中我們用於存放zookeeper資料的data資料夾和存放日誌的log資料夾都需要手動建立。

此配置檔案中其餘屬性的含義如下:

tickTime:這個時間是作為 Zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
dataDir:顧名思義就是 Zookeeper 儲存資料的目錄,預設情況下,Zookeeper 將寫資料的日誌檔案也儲存在這個目錄裡。
clientPort:這個埠就是客戶端連線 Zookeeper 伺服器的埠,Zookeeper 會監聽這個埠,接受客戶端的訪問請求。
initLimit:叢集中的follower伺服器(F)與leader伺服器(L)之間初始連線時能容忍的最多心跳數(tickTime的數量)
syncLimit:叢集中的follower伺服器與leader伺服器之間請求和應答之間能容忍的最多心跳數(tickTime的數量)。

2. 配置完成後,就開始啟動我們的zookeeper吧:

我們有兩種方式進行啟動:

1) 第一種方式,在zookeeper的bin目錄中直接雙擊執行“zkServer.cmd”檔案,可以看到如下介面:

2)第二種方式,進入bin目錄後,在路徑導航欄中輸入cmd,進入控制檯:

控制檯中輸入 zkServer.cmd 並回車

至此,單機模式啟動完成。

偽叢集模式

1. 首先我們需要在zookeeper的解壓目錄創建出幾個資料夾,具體數量取決於你希望搭建的偽叢集有多少個節點,在示例中,我們模擬三個節點。

將我們解壓的zookeeper在每個新建的資料夾中都複製一份,每個資料夾內部的檔案結構如下:

2. 在每個資料夾下的zookeeper中的conf目錄下,進行zoo.cfg檔案的編輯配置,三個伺服器的配置資訊如下:

server1:

server2:

server3:

可以看出,每個配置檔案不同的地方就是 dataDir 和 dataLogDir 的路徑,以及 clientPort 埠。

而每個配置檔案相同的地方就是:

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

對於這個配置的解釋如下:

server.A = B.C.D

A:叢集中每個 zookeeper 伺服器自身的標誌編號,我們可以隨意給值,此編號必須為整數,且必須在 1~255 之間。

B:叢集中每個 zookeeper 伺服器的IP地址。

C:叢集中每個 zookeeper 伺服器與 Leader 伺服器進行資訊交換的埠。

D:當叢集中的 Leader 伺服器宕機之後,所有的剩餘伺服器會進行投票選舉出新的 Leader 伺服器,這個埠就是用來交換選舉資訊的通訊埠。

注意:這些埠在真正的叢集環境中不一定是不同的,因為他們是在不同機器上的,但是我們目前搭建的是偽叢集,所有節點是在同一臺機器上的,所以,每個server的 C.D 埠都不能相同,不然就會出現埠被佔用的錯誤。

3. 在每個server節點的 dataDir 中指定的資料夾下建立一個 myid 檔案,沒有任何字尾名:

這個新建立的 myid 檔案只有一行資訊,是一個數字,就是之前我們在第二步中,對每個 server 配置的 A 資訊,也就是伺服器自身的標誌編號,zookeeper 會通過此檔案進行編號檢查等操作。

我們以 server1 為例,因為在 conf 目錄下的 zoo.cfg 檔案中對於 server1 的配置是 server.1=127.0.0.1:2888:3888,所以序號就是1。

同理,server2 的 dataDir 對應的資料夾中新建的 myid 檔案中只有一個數字2, server3 則只有一個數字 3。

4. 全部配置完後,我們以此通過每個server的bin目錄下的zkServer.cmd檔案進行啟動即可

在全部啟動之前,先啟動的zookeeper會出現錯誤,是因為叢集中還有zookeeper伺服器沒有啟動,所以連線不上,在所有的zookeeper伺服器全部啟動之後,錯誤自然就會消失。

至此,偽叢集搭建完畢。

真實叢集

真實叢集並沒有去測試,不過跟偽叢集的配置方式基本一致,唯獨不同的就是,因為真實叢集所有節點並不都在同一臺伺服器,所以各個zookeeper伺服器節點與 Leader 伺服器進行通訊的埠號、各個zookeeper 伺服器節點進行重新選舉的資訊互動的埠號以及客戶端的訪問埠號 clientPort 不一定是不同的,很可能是相同的。

且zookeeper叢集的數量最好是奇數,因為zookeeper叢集只要半數以上節點伺服器正常,就可以提供正常的叢集服務。