1. 程式人生 > >ZooKeeper偽分布式集群部署

ZooKeeper偽分布式集群部署

cti 般的 客戶端 分布 末尾 安裝 例子 安裝目錄 bin

本文為Zookeeper偽分布式環境的部署,機器環境Wie

  •   1、Centos 6.8
  •   2、JDK為1.8.0_121
  • 3、zookeeper版本為3.4.9

一、zookeeper偽分布式環境準備

  1.   官網下載zookeeper到/opt/zookeeper/zookeeper-3.4.9.tar.gz
  2.   執行解壓命令
    1 tar zxvf zookeeper-3.4.9.tar.gz
  3. 修改環境變量(非必須)

        為了方便命令輸入,這裏將zookeeper配置到環境變量中

      1 vim /etc/profile

        在文件的末尾增加以下內容,保存退出

    1 export ZOOKEEPER=/opt/zookeeper/zookeeper-3.4.9
    2 export PATH=$PATH:$ZOOKEEPER/bin

        刷新環境變量

    1 source /etc/profile


二、部署偽分布式集群環境

  說明,本次部署采用的是三個節點進行部署

  在部署之前,先對zookeeper的配置文件進行介紹,zookeeper配置文件位於安裝目錄下的conf/zoo_sample.cfg

  打開該文件如下

    

 1 Zookeeper偽分布式
 2 
 3 
 4 
 5 # The number of milliseconds of each tick
6 # tickTime為每個心跳的時間間隔,單位為毫秒 7 tickTime=2000


8 # The number of ticks that the initial 9 # synchronization phase can take 10 #initLimit表示初始化連接時,最多能夠忍受多少個心跳的時間間隔。舉個例子,當超過10個心跳間隔時,還沒有收到返回信息,表示這個客戶端連接失敗,10個時間間隔就是10*2000=20000毫秒即20秒 11 initLimit=10
12 # The number of ticks that can pass between 13 # sending a request and getting an acknowledgement
14 #syncLimit表示follower和Leader通信時,請求和應答的時間長度,最長不能超過多少個心跳間隔,這裏是5*2000=10000即10秒 15 syncLimit=5
16 # the directory where the snapshot is stored. 17 # do not use /tmp for storage, /tmp here is just 18 # example sakes. 19 #dataDir快照的存放目錄,這裏配置為tmp僅僅是示例,不要使用/tmp目錄 20 dataDir=/tmp/zookeeper
21 # the port at which the clients will connect 22 #clientPort表示開放為客戶端連接進入的端口 23 clientPort=2181

24 # the maximum number of client connections. 25 # increase this if you need to handle more clients 26 #maxClientCnxns表示客戶端可連接進入的最大連接數 27 #maxClientCnxns=60 28 29 # 30 # Be sure to read the maintenance section of the 31 # administrator guide before turning on autopurge. 32 # 33 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance 34 # 35 # The number of snapshots to retain in dataDir 36 #在zookeeper3.4.0以後提供了自動清理快照的功能,該配置表示保留快照的文件數目,默認是3個 37 #autopurge.snapRetainCount=3
38 # Purge task interval in hours 39 # Set to "0" to disable auto purge feature 40 #自動清理的時間間隔,即清理的頻率。單位為小時,設置為0表示不自動清理, 41 #autopurge.purgeInterval=1 42 43 44 45 46 ############################################# 47 #zookeeper其它配置介紹 48 1、dataLogDir:在默認的的配置文件示例中沒有提供dataLogDir,如果沒有提供的話,則使用的dataDir。zookeeper的持久化都存在dataDir和dataLogDir這兩個目錄下。由於dataLogDir裏面存放的是順序日誌(WAL:Write-Ahead Logging預寫日誌系統,數據庫中一種高效的日誌算法,對於非內存數據庫而言,磁盤I/O操作是數據庫效率的一大瓶頸。在相同的數據量下,采用WAL日誌的數據庫系統在事務提交時,磁盤寫操作只有傳統的回滾日誌的一半左右,大大提高了數據庫磁盤I/O操作的效率,從而提高了數據庫的性能),而dataDir裏面存放的是內存數據結構的snapshot,便於恢復。所以一般的情況下是建議個這兩個分到不同磁盤上,以便從發利用磁盤書序寫的特性,以達到性能的最大化。 49 2、集群中的服務列表配置 50 server.A=B:C:D 51 A:表示集群中服務器的序號,需要唯一 52 B:表示服務器的IP 53 C:和集群中Leader交換數據的端口 54 D:進行Leader選舉的端口 55 舉例子 56 server.1=192.168.135.11:8881:8891 57 server.2=192.168.135.12:8881:8891 58 server.3=192.168.135.13:8881:8891 59 在這個集群中有三個服務器 60 序號分別為1、2361 IP分別為192.168.135.11,192.168.135.12,192.168.135.1362 和Leader通訊的端口均為8881,當然這裏的通訊端口也可以不一樣 63 進行Leader選舉的端口均為8891,這裏的選舉端口也可以不一樣 64

  

ZooKeeper偽分布式集群部署