本篇文章目的:以最小成本學習zookeeper的集群安裝。
zookeeper的三要素:
1、一致,能夠保證數據的一致性
2、有頭,始終有一個leader,node/2+1個節點有效,就能正常工作
3、數據樹,樹狀結構且每個樹必須有數據
環境准備
操作系統:CentOS Linux release 7.2.1511 (Core)
JDK版本:1.8.0_121
三台服務器:192.168.1.91; 192.168.1.92; 192.168.1.93;
下載zookeeper
下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

選擇zookeeper-3.4.9版本

下載即可
拷貝zookeeper
先創建/soft目錄,然后利用WinSCP拷貝到該目錄下
[root@localhost /]# mkdir /soft
解壓zookeeper
[root@localhost /]# cd /soft/
[root@localhost soft]# tar zxvf zookeeper-3.4.9.tar.gz
移動到/usr/local目錄下
[root@localhost soft]# mv zookeeper-3.4.9 /usr/local/zookeeper
配置zookeeper
1、 創建數據目錄
下面zoo.cfg配置文件的dataDir將會修改為這個目錄
[root@localhost zookeeper]# cd /usr/local/zookeeper
[root@localhost zookeeper]# mkdir data
2、配置zoo.cfg
[root@localhost zookeeper]# cd conf
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
[root@localhost conf]# vi zoo.cfg
先把dataDir=/tmp/zookeeper注釋,然后將下面四行代碼添加到文件末尾
dataDir=/usr/local/zookeeper/data
server.1=192.168.1.91:2888:3888
server.2=192.168.1.92:2888:3888
server.3=192.168.1.93:2888:3888
3、創建myid文件
[root@localhost conf]# cd ../data
[root@localhost data]# touch myid
[root@localhost data]# echo "1">>myid
拷貝zookeeper
拷貝zookeeper到另外兩台機器
[root@localhost data]# scp -r /usr/local/zookeeper root@192.168.1.92:/usr/local/
[root@localhost data]# scp -r /usr/local/zookeeper root@192.168.1.93:/usr/local/
中間會要求輸入密碼,分別輸入你另外兩台機器的密碼就行了
修改myid文件
192.168.1.92的myid內容改為2
[root@localhost zookeeper]# cd /usr/local/zookeeper/data
[root@localhost data]# echo "2">myid
192.168.1.93的myid內容改為3
[root@localhost zookeeper]# cd /usr/local/zookeeper/data
[root@localhost data]# echo "3">myid
開啟zookeeper端口
開啟2888、3888、2181端口
[root@localhost data]# firewall-cmd --zone=public --add-port=2888/tcp --permanent
[root@localhost data]# firewall-cmd --zone=public --add-port=3888/tcp --permanent
[root@localhost data]# firewall-cmd --zone=public --add-port=2181/tcp --permanent
重啟防火牆
[root@localhost data]# firewall-cmd --reload
啟動zookeeper
1、啟動(每台機器都要啟動)
[root@localhost bin]# /usr/local/zookeeper/bin/zkServer.sh start
如果輸出以下內容,表示啟動成功
ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
2、 查看狀態
[root@localhost data]# /usr/local/zookeeper/bin/zkServer.sh status
192.168.1.91
ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower
192.168.1.92
ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: leader
192.168.1.93
ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower
由此我們看出192.168.1.92這台機器被自動選舉為leader了
客戶端連接
[root@localhost zookeeper]# /usr/local/zookeeper/bin/zkCli.sh -server 192.168.1.92:2181
最終如下圖,表示連接成功:

好了,集群配置完成。
參考網址
http://www.linuxidc.com/Linux/2016-12/137958.htm
http://www.cnblogs.com/luotianshuai/p/5206662.html 這篇文章講的很詳細,可以仔細看看,尤其是里面的配置文件的解釋,有對性能的說明
