1. 程式人生 > >分散式Web應用----Linux環境下zookeeper叢集環境的安裝與配置

分散式Web應用----Linux環境下zookeeper叢集環境的安裝與配置

寫在前面

zookeeper在分散式應用中運用的比較廣泛,瞭解zookeeper的原理對理解分佈架構的應用具有很大的幫助,學會安裝zookeeper是學習zookeeper的前提,自己剛剛學習zookeeper,記錄一下安裝過程,增加自己印象,方便其它人學習。

這裡寫圖片描述

下載zookeeper

wget http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.8.tar.gz

解壓zookeeper,並重命名為zookeeper

tar -zxvf  zookeeper-3.4.8.tar.gz
mv  zookeeper-3.4
.8 zookeeper

複製配置檔案並配置zookeeper叢集

進入zookeeper/conf目錄下

cp zoo_sample.cfg zoo.cfg

配置如下 :

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/var/zookeeper # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients
#maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 #server.id(伺服器ID)=host(主機地址):port(follower與leader伺服器通訊埠):port(選取leader埠) server.1=192.168.1.105:2888:3888 server.2=192.168.1.106:2888:3888 server.3=192.168.1.107:2888:3888

在配置檔案中主要關注三個地方,
1. clientPort=2181 這個是連線zookeeper的埠
2. dataDir=/var/zookeeper 這是zookeeper在啟動過程中存放檔案的目錄
3. server.1=192.168.1.105:2888:3888 這裡是叢集伺服器的配置,zookeeper執行有三個模式

  • 叢集模式,上面配置的是叢集模式,
  • 偽叢集模式就是用單機來模仿叢集模式,只需要將server.id後面的ip地址配置成一樣的,然後用不同的埠
  • 單機模式,不需要配置server.id

在建立var/zookeeper/myid檔案,輸入對應的server的ID

同樣的安裝及配置複製到其它二臺伺服器上,zoo.cfg配置都一樣,唯一不一樣的是/var/zookeeper/myid檔案中的值,例如我的配置中

192.168.1.105的 /var/zookeeper/myid中寫1
192.168.1.106的/var/zookeeper/myid中寫2
192.168.1.107的/var/zookeeper/myid中寫3

啟動zookeeper叢集

分別進入三臺伺服器的 zookeeper/bin目錄下啟動zookeeper

./zkServer.sh start  #啟動
./zkServer.sh stop   #停止
./zkServer.sh restart  #重啟

檢查zookerper啟動狀態

利用telnet命令連線到zookeeper

telnet 192.168.1.106 2181

telnet連線成功後,利用stat命令檢視zookeeper狀態

stat

192.168.1.106 伺服器zookeeper狀態

Zookeeper version: 3.4.8--1, built on 02/06/2016 03:18 GMT
Clients:
 /127.0.0.1:45681[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 3
Sent: 2
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 4
Connection closed by foreign host.

192.168.1.107 伺服器zookeeper狀態

Zookeeper version: 3.4.8--1, built on 02/06/2016 03:18 GMT
Clients:
 /121.41.84.103:36718[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 5
Sent: 4
Connections: 1
Outstanding: 0
Zxid: 0x100000000
Mode: leader
Node count: 4
Connection closed by foreign host.

我們可以看到107的Mode:leader說明這是leader伺服器,106的mode:follower說明是follower伺服器,這說明zookeeper叢集安裝配置成功了。