zookeeper安裝和 windows環境下使用的注意事項

一.概述

ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。

ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。

ZooKeeper包含一個簡單的原語集,提供Java和C的接口。

ZooKeeper代碼版本中,提供了分佈式獨享鎖、選舉、隊列的接口,代碼在$zookeeper_home\src\recipes。其中分佈鎖和隊列有Java和C兩個版本,選舉只有Java版本。

二.原理

ZooKeeper是以Fast Paxos算法爲基礎的,Paxos 算法存在活鎖的問題,即當有多個proposer交錯提交時,有可能互相排斥導致沒有一個proposer能提交成功,而Fast Paxos作了一些優化,通過選舉產生一個leader (領導者),只有leader才能提交proposer,具體算法可見Fast Paxos。因此,要想弄懂ZooKeeper首先得對Fast Paxos有所瞭解。 

ZooKeeper的基本運轉流程:

1、選舉Leader。

2、同步數據。

3、選舉Leader過程中算法有很多,但要達到的選舉標準是一致的。

4、Leader要具有最高的執行ID,類似root權限。

5、集羣中大多數的機器得到響應並接受選出的Leader。

三.特點

在Zookeeper中,znode是一個跟Unix文件系統路徑相似的節點,可以往這個節點存儲或獲取數據。如果在創建znode時Flag設置爲EPHEMERAL,那麼當創建這個znode的節點和Zookeeper失去連接後,這個znode將不再存在在Zookeeper裏,Zookeeper使用Watcher察覺事件信息。當客戶端接收到事件信息,比如連接超時、節點數據改變、子節點改變,可以調用相應的行爲來處理數據。Zookeeper的Wiki頁面展示瞭如何使用Zookeeper來處理事件通知,隊列,優先隊列,鎖,共享鎖,可撤銷的共享鎖,兩階段提交。

四.安裝

下載地址:http://mirror.bit.edu.cn/apache/zookeeper/

下載完成後解壓到指定目錄(我是解壓到:D:\zookeeper),如下圖所示:

解壓完畢後還需要簡單修改一下配置才能啓動,具體配置如下:

  1.  在conf下修改zoo_sample.cfg 文件名爲 zoo.cfg
  2. tickTime=2000
  3. initLimit=10
  4. syncLimit=5
  5. dataDir=D:\\zookeeper\\data
  6. dataLogDir=D:\\zookeeper\\log
  7. clientPort=2181

名詞解釋:

1、tickTime:這個時間是Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,每隔 tickTime 時間就會發送一個心跳。
2、dataDir:Zookeeper 保存數據的目錄,默認情況下Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。
3、dataLogDir:Zookeeper 保存日誌文件的目錄
4、clientPort:客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。

五.啓動

進入到bin目錄,並且啓動zkServer.cmd,這個腳本中會啓動一個java進程,如下圖所示:

簡單測試一下,在bin目錄下找到zkCli.cmd客戶端點擊啓動,如下圖所示:

像這樣就算安裝啓動成功了,是不是很簡單,快去試試吧。

六.注意事項

在啓動ZooKeeper時,會有窗口一閃而過的情況,出現這種情況的原因如下:

1.可能是jdk環境變量有空格或者沒配置jdk環境變量

2.可能是zk的dataDir路徑不對或者沒配置dataDir路徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章