zookeeper-系列1-安裝


zookeeper環境搭建:

Zookeeper的安裝和配置十分簡單, 既可以配置成單機模式, 也可以配置成集群模式. 下面將分別進行介紹.

單機模式

下載zookeeper的安裝包之后, 解壓到合適目錄. 進入zookeeper目錄下的conf子目錄, 創建zoo.cfg:

Bash代碼  收藏代碼
  1. tickTime=2000    
  2. dataDir=/Users/apple/zookeeper/data    
  3. dataLogDir=/Users/apple/zookeeper/logs    
  4. clientPort=4180   

參數說明:

  • tickTime: zookeeper中使用的基本時間單位, 毫秒值.
  • dataDir: 數據目錄. 可以是任意目錄.
  • dataLogDir: log目錄, 同樣可以是任意目錄. 如果沒有設置該參數, 將使用和dataDir相同的設置.
  • clientPort: 監聽client連接的端口號.

至此, zookeeper的單機模式已經配置好了. 啟動server只需運行腳本:

Bash代碼  收藏代碼
  1. bin/zkServer.sh start  
 Server啟動之后, 就可以啟動client連接server了, 執行腳本: Bash代碼  收藏代碼
  1. bin/zkCli.sh -server localhost:4180  
 

偽集群模式

所謂偽集群, 是指在單台機器中啟動多個zookeeper進程, 並組成一個集群. 以啟動3個zookeeper進程為例.

將zookeeper的目錄拷貝2份:

Bash代碼  收藏代碼
  1. |--zookeeper0  
  2. |--zookeeper1  
  3. |--zookeeper2  

 更改zookeeper0/conf/zoo.cfg文件為:

Bash代碼  收藏代碼
  1. tickTime=2000    
  2. initLimit=5    
  3. syncLimit=2    
  4. dataDir=/Users/apple/zookeeper0/data    
  5. dataLogDir=/Users/apple/zookeeper0/logs    
  6. clientPort=4180  
  7. server.0=127.0.0.1:8880:7770    
  8. server.1=127.0.0.1:8881:7771    
  9. server.2=127.0.0.1:8882:7772  

新增了幾個參數, 其含義如下:

  • initLimit: zookeeper集群中的包含多台server, 其中一台為leader, 集群中其余的server為follower. initLimit參數配置初始化連接時, follower和leader之間的最長心跳時間. 此時該參數設置為5, 說明時間限制為5倍tickTime, 即5*2000=10000ms=10s.
  • syncLimit: 該參數配置leader和follower之間發送消息, 請求和應答的最大時間長度. 此時該參數設置為2, 說明時間限制為2倍tickTime, 即4000ms.
  • server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. 由於配置的是偽集群模式, 所以各個server的B, C參數必須不同.

參照zookeeper0/conf/zoo.cfg, 配置zookeeper1/conf/zoo.cfg, 和zookeeper2/conf/zoo.cfg文件. 只需更改dataDir, dataLogDir, clientPort參數即可.

在之前設置的dataDir中新建myid文件, 寫入一個數字, 該數字表示這是第幾號server. 該數字必須和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目錄, 啟動客戶端:

Bash代碼  收藏代碼
  1. bin/zkCli.sh -server localhost:4180  

 

集群模式

集群模式的配置和偽集群基本一致.
由於集群模式下, 各server部署在不同的機器上, 因此各server的conf/zoo.cfg文件可以完全一樣.
下面是一個示例:

Bash代碼  收藏代碼
  1. tickTime=2000    
  2. initLimit=5    
  3. syncLimit=2    
  4. dataDir=/home/zookeeper/data    
  5. dataLogDir=/home/zookeeper/logs    
  6. clientPort=4180  
  7. server.1=10.1.39.43:2888:3888  
  8. server.2=10.1.39.47:2888:3888    
  9. server.3=10.1.39.48:2888:3888  

解釋:

#server.A=BCD:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集群中的 Leader 服務器交換信息的端口;D 表示的是萬一集群中的 #Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是偽集群的配置方式,由於 B 都是一樣,所以不同的 #Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。

示例中部署了3台zookeeper server, 分別部署在10.1.39.43, 10.1.39.47, 10.1.39.48上. 需要注意的是, 各server的dataDir目錄下的myid文件中的數字必須不同.myid代表zookeeper集群節點啟動順序,每一個節點下的myid序號需要與配置文件一致,

例如server1,myid配置文件為1



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com