zookeeper的部署安裝
Zookeeper的安裝和配置十分簡單, 既可以配置成單機模式, 也可以配置成集群模式艘蹋。
單機模式
下載地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
下載zookeeper的安裝包之后脚粟,解壓目錄. 進入zookeeper目錄下的conf子目錄, 創(chuàng)建==zoo.cfg==.
注意:以下配置文件中每一句的最后都不要有空格=笏ァ戏自!
tickTime=2000
dataDir=/Users/apple/zookeeper/data
dataLogDir=/Users/apple/zookeeper/logs
clientPort=2181
參數(shù)說明:
- tickTime: zookeeper中使用的基本時間單位, 毫秒值.
- dataDir: 數(shù)據(jù)目錄. 可以是任意目錄.
- dataLogDir: log目錄, 同樣可以是任意目錄. 如果沒有設置該參數(shù), 將使用和dataDir相同的設置.
- clientPort: 監(jiān)聽client連接的端口號.
至此, zookeeper的單機模式已經(jīng)配置好了. 啟動server只需運行腳本
bin/zkServer.sh start
Server啟動之后, 就可以啟動client連接server了, 執(zhí)行腳本
bin/zkCli.sh -server localhost:2181
偽集群模式
所謂偽集群, 是指在單臺機器中啟動多個zookeeper進程, 并組成一個集群. 以啟動3個zookeeper進程為例.
將zookeeper的目錄拷貝2份:
|--zookeeper0
|--zookeeper1
|--zookeeper2
更改zookeeper0/conf/zoo.cfg文件為:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/Users/apple/zookeeper0/data
dataLogDir=/Users/apple/zookeeper0/logs
clientPort=2181
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
新增了幾個參數(shù), 其含義如下:
- initLimit: zookeeper集群中的包含多臺server, 其中一臺為leader, 集群中其余的server為follower. initLimit參數(shù)配置初始化連接時, follower和leader之間的最長心跳時間. 此時該參數(shù)設置為5, 說明時間限制為5倍tickTime, 即5*2000=10000ms=10s.
- syncLimit: 該參數(shù)配置leader和follower之間發(fā)送消息, 請求和應答的最大時間長度. 此時該參數(shù)設置為2, 說明時間限制為2倍tickTime, 即4000ms.
- server.X=A:B:C 其中X是一個數(shù)字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. 由于配置的是偽集群模式, 所以各個server的B, C參數(shù)必須不同.
- 參照zookeeper0/conf/zoo.cfg, 配置zookeeper1/conf/zoo.cfg, 和zookeeper2/conf/zoo.cfg文件. 只需更改dataDir, dataLogDir, clientPort參數(shù)即可.
- 在之前設置的dataDir中新建myid文件, 寫入一個數(shù)字, 該數(shù)字表示這是第幾號server. 該數(shù)字必須和zoo.cfg文件中的server.X中的X一一對應.
- /Users/apple/zookeeper0/data/myid文件中寫入0, /Users/apple/zookeeper1/data/myid文件中寫入1, /Users/apple/zookeeper2/data/myid文件中寫入2.
分別進入/Users/apple/zookeeper0/bin, /Users/apple/zookeeper1/bin, /Users/apple/zookeeper2/bin三個目錄, 啟動server.
任意選擇一個server目錄, 啟動客戶端:
bin/zkCli.sh -server localhost:2181
集群模式
集群模式的配置和偽集群基本一致.
由于集群模式下, 各server部署在不同的機器上,因此各server的conf/zoo.cfg文件可以完全一樣.
下面是一個示例:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zoodata
clientPort=2181
server.1=10.2.2.71:2222:3333
server.2=10.2.2.72:2222:3333
server.3=10.2.2.73:2222:3333
示例中部署了3臺zookeeper server, 分別部署10.2.2.71, 10.2.2.72, 10.2.2.73上.需要注意的是, 各server的dataDir目錄下的myid文件中的數(shù)字必須不同.
10.2.2.71的myid為1暮顺,10.2.2.72的myid為2凉蜂,10.2.2.73的myid為3.
設置開機啟動
部署了Zookeeper之后,當需要重啟機器時羔杨,開機后往往需要花一點時間對zookeeper集群進行啟動,由于zookeeper沒有主節(jié)點的概念捌臊,且一個節(jié)點的重啟不會對集群造成什么影響,所以可以考慮把zookeeper設置成開機啟動.