zookeeper單機版安裝


1.解壓zookeeper安裝包(本人重命名為zookeeper,並移動到/usr/local路徑下),此處只有解壓命令

  tar -zxvf zookeeper-3.4.5.tar.gz

2.進入到zookeeper文件夾下,並創建data和logs文件夾(一般解壓后都有data文件夾)

  [root@localhost zookeeper]# cd /usr/local/zookeeper/

  [root@localhost zookeeper]# mkdir logs

3.在conf目錄下修改zoo.cfg文件(如果沒有此文件,則自己新建該文件),修改為如下內容:

  

最低配置

參數名
默認
描述
clientPort
 
服務的監聽端口
dataDir
 
用於存放內存數據快照的文件夾,同時用於集群的myid文件也存在這個文件夾里
tickTime
2000
Zookeeper的時間單元。Zookeeper中所有時間都是以這個時間單元的整數倍去配置的。例如,session的最小超時時間是2*tickTime。(單位:毫秒)
dataLogDir
 
事務日志寫入該配置指定的目錄,而不是“ dataDir ”所指定的目錄。這將允許使用一個專用的日志設備並且幫助我們避免日志和快照之間的競爭
globalOutstandingLimit
1,000
最大請求堆積數。默認是1000。Zookeeper運行過程中,盡管Server沒有空閑來處理更多的客戶端請求了,但是還是允許客戶端將請求提交到服務器上來,以提高吞吐性能。當然,為了防止Server內存溢出,這個請求堆積數還是需要限制下的。 
preAllocSize
64M
預先開辟磁盤空間,用於后續寫入事務日志。默認是64M,每個事務日志大小就是64M。如果ZK的快照頻率較大的話,建議適當減小這個參數。
snapCount
100,000
每進行snapCount次事務日志輸出后,觸發一次快照, 此時,Zookeeper會生成一個snapshot.*文件,同時創建一個新的事務日志文件log.*。默認是100,000.
traceFile
 
用於記錄所有請求的log,一般調試過程中可以使用,但是生產環境不建議使用,會嚴重影響性能。
maxClientCnxns
 
最大並發客戶端數,用於防止DOS的,默認值是10,設置為0是不加限制
clientPortAddress / maxSessionTimeout
 
對於多網卡的機器,可以為每個IP指定不同的監聽端口。默認情況是所有IP都監聽 clientPort 指定的端口
minSessionTimeout
 
Session超時時間限制,如果客戶端設置的超時時間不在這個范圍,那么會被強制設置為最大或最小時間。默認的Session超時時間是在2 *  tickTime ~ 20 * tickTime 這個范圍 
fsync.warningthresholdms
1000
事務日志輸出時,如果調用fsync方法超過指定的超時時間,那么會在日志中輸出警告信息。默認是1000ms。
autopurge.snapRetainCount
 
參數指定了需要保留的事務日志和快照文件的數目。默認是保留3個。和autopurge.purgeInterval搭配使用
autopurge.purgeInterval
 

在3.4.0及之后版本,Zookeeper提供了自動清理事務日志和快照文件的功能,這個參數指定了清理頻率,單位是小時,需要配置一個1或更大的整數,默認是0,表示不開啟自動清理功能

syncEnabled
  Observer寫入日志和生成快照,這樣可以減少Observer的恢復時間。默認為true。


集群選項

參數名
默認
描述
electionAlg
 
之前的版本中, 這個參數配置是允許我們選擇leader選舉算法,但是由於在以后的版本中,只有“FastLeaderElection ”算法可用,所以這個參數目前看來沒有用了。
initLimit
10

Observer和Follower啟動時,從Leader同步最新數據時,Leader允許initLimit * tickTime的時間內完成。如果同步的數據量很大,可以相應的把這個值設置的大一些。

leaderServes
yes 默 認情況下,Leader是會接受客戶端連接,並提供正常的讀寫服務。但是,如果你想讓Leader專注於集群中機器的協調,那么可以將這個參數設置為 no,這樣一來,會大大提高寫操作的性能。一般機器數比較多的情況下可以設置為no,讓Leader不接受客戶端的連接。默認為yes
server.x=[hostname]:nnnnn[:nnnnn]
 
“x”是一個數字,與每個服務器的myid文件中的id是一樣的。hostname是服務器的hostname,右邊配置兩個端口,第一個端口用於Follower和Leader之間的數據同步和其它通信,第二個端口用於Leader選舉過程中投票通信。  
syncLimit
 
表示Follower和Observer與Leader交互時的最大等待時間,只不過是在與leader同步完畢之后,進入正常請求轉發或ping等消息交互時的超時時間。
group.x=nnnnn[:nnnnn]
 
“x”是一個數字,與每個服務器的myid文件中的id是一樣的。對機器分組,后面的參數是myid文件中的ID
weight.x=nnnnn
 
“x”是一個數字,與每個服務器的myid文件中的id是一樣的。機器的權重設置,后面的參數是權重值
cnxTimeout
5s
 選舉過程中打開一次連接的超時時間,默認是5s
standaloneEnabled
 
當設置為false時,服務器在復制模式下啟動

4.進入bin目錄,啟動、停止、重啟分和查看當前節點狀態

  [root@localhost bin]# ./zkServer.sh start

  [root@localhost bin]# ./zkServer.sh stop

  [root@localhost bin]# ./zkServer.sh restart

  [root@localhost bin]# ./zkServer.sh status


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM