Zookeeper的配置

ZooKeeper的功能特性是通過ZooKeeper配置文件(Zoo.cfg)來進行控制管理的。這樣的設計其實有其自身的原因。通過前面對ZooKeeper的配置可以看出,在ZooKeeper集羣進行配置的時候,他的配置文檔是完全相同的(對於集羣僞分佈式來說,只有很少的部分是不同的)。這樣的配置方式使得在部署ZooKeeper服務的時候非常方便。如果服務器使用不同的配置文件,必須要確保不同配置文件中的服務器列表相匹配。

在設置ZooKeeper配置文檔的時候,某些參數是可選的,但是某些參數是必需的。這些必需的參數就構成了ZooKeeper配置文檔的最低配置要求。另外,如果需要對ZooKeeper進行更詳細的配置,大家可以參考下面將要講述的內容。

1、最低配置要求

1)clientPort:監聽客戶端連接的端口;

2)dataDir:zookeeper 保存數據的目錄,默認情況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏;

3)tickTime:這個時間是作爲 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。

   應該謹慎地選擇日誌存放日誌存放的位置,使用專用的日誌存儲設備能夠大大提高系統的性能,如果將日誌存儲在比較繁忙的存儲設備上,那麼將會很大程度上影響系統的性能。

2、高級配置

下面是高級配置要求中可選的配置參數,用戶可以使用下面的參數來更好的規定ZooKeeper的行爲:

(1) dataLogDir

這個操作讓管理機器把事務日誌寫入“dataLogDir” 所指定的目錄中,而不是“dataDir”所指定的目錄。這將允許使用一個專用的日誌設備,並且幫助我們避免日誌和快照之間的競爭。配置如下:

#the location of the log file
dataLogDir = /root/hadoop-*.*.*/zookeeper-3.4.3/log/data_log
(2) maxClientCnxns

這個參數將限制連接到ZooKeeper的客戶端的數量,並且限制併發連接的數量,通過IP來區分不同的客戶端。此配置選項可以用來阻止某些類別的Dos攻擊。將它設置爲0或忽略而不進行設置將會取消對併發連接的限制。

例如,此時我們將maxClientCnxn的值設置爲1,

# set maxClientCnxns
maxClientCnxns=1
啓動ZooKeeper之後,首先用一個客戶端連接到ZooKeeper服務器之上。之後如果有第二個客戶端嘗試對ZooKeeper進行連接,或者有某些隱式客戶端的連接操作,將會觸發ZooKeeper的上述配置。系統會提示“To mang connections form /127.0.0.1 max is 1”。

(3)minSessionTimeout和maxSessionTimeout

即最小的會話超時時間和最大的會話超時時間。在默認情況下,最小的會話超時時間爲2倍的tickTime時間,最大的會話超時時間爲20倍的會話超時時間。系統啓動時會顯示響應的信息。

在配置minSessionTimeout及maxSessionTimeout的值時需要注意,如果將此值設置的太小的話,會話可能剛剛建立便由於超時而不得不退出。一般情況下不能將此值設置得比tickTime的值還小。

3.集羣配置

(1) initLimit

此配置表示,允許follower(相對於leader而言的“客戶端”)連接並同步到leader的初始化連接時間,他是以tickTime的倍數來表示的。當初始化連接時間超過設置倍數的tickTime時間時,則連接失敗。

(2) syncLimit

此配置表示leader與follower之間發送消息時請求和應答的時間長度。如果follower在設置的時間內不能與leader通信,那麼此follower將被丟棄。

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