# Zookeeper集群的部署
標簽(空格分隔): Zookeeper
ZooKeeper是一個開源的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop、Hbase、Kafka等流行開源框架的重要組件。
以下實驗環境為Ubuntu14.04,局域網內的三臺普通計算機,虛擬機可以進行相同的配置。
### 配置IP映射
為了方便后續的操作,以及容易修改配置信息,我們先做個IP地址的映射。在/etc/hosts文件中添加如下內容:
~~~
192.168.0.100 zk1
192.168.0.101 zk2
192.168.0.102 zk3
~~~
注意每臺機器都要進行相同的配置。
### 下載及配置
我們先在zk1的機器上進行配置,我下載的是 [zookeeper-3.4.7](http://www.eu.apache.org/dist/zookeeper/zookeeper-3.4.7/zookeeper-3.4.7.tar.gz)。解壓完成后要復制該目錄下的 `conf/zoo_sample.cfg` 為 `conf/zoo.cfg` ,并對 `zoo.cfg` 進行配置:
~~~
tickTime=2000
# 修改成任意想要存放數據的位置,建議使用絕對路徑
dataDir=/home/user/storage/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888
~~~
在dataDir指定的目錄下創建文件myid,里面添加一個數字1。
### 遠程復制配置
現在把zk1上的文件復制到zk2和zk3上:
~~~
scp -r zookeeper-3.4.7/ user@zk2:/home/user/
scp -r zookeeper-3.4.7/ user@zk3:/home/user/
~~~
在這兩臺機器上也要有myid文件,內容改成相應的數字。
### 啟動集群
在每臺機器上zookeeper目錄下執行以下命令來啟動zookeeper服務:
~~~
bin/zkServer.sh start
~~~
啟動zookeeper時每個節點都會試圖去連接集群中的其他節點,所以在開啟前面兩臺上的服務時會記錄一些異常,等所有集群上的機器都啟動完畢就恢復正常了。
### 日志查看
zookeeper的日志在目錄下的zookeeper.out文件中,可以通過查看日志來了解啟動的狀況與節點運行情況,如下面的命令可以查看日志的最新部分:
~~~
tail -200f zookeeper.out
~~~
### 運行情況
我們還可以通過腳本來檢測一下節點的運行情況:
~~~
bin/zkServer.sh status
~~~
下面是一個節點的輸出,節點模式分為leader和follower:
~~~
ZooKeeper JMX enabled by default
Using config: /home/user/zookeeper-3.4.7/bin/../conf/zoo.cfg
Mode: follower
~~~