應用場景:ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。
它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等。[摘自百度百科]
官網:http://zookeeper.apache.org/
安裝環境:Zookeeper集群最好至少安裝3個節點,這里端口采用默認zookeeper默認端口:2181

安裝步驟:
1. 下載zookeeper並解壓
官網推薦下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
~]# tar -zxvf zookeeper-3.4.11.tar.gz -C /opt/ //這里解壓至/opt目錄中使用

2. 編輯配置文件
進入conf目錄,cp生成一個zk能識別的配置文件名:zoo.cfg,如下
[root@server-1 conf]# cp zoo_sample.cfg zoo.cfg

修改配置文件zoo.cfg,如下:
[root@server-1 conf]# vim zoo.cfg

保存,退出;
三台節點配置一樣,其他兩台略。
3. 添加myid文件
說明:除了修改 zoo.cfg 配置文件,集群模式下還要新增一個名叫myid的文件,這個文件放在上述dataDir指定的目錄下,這個文件里面就
只有一個數據,就是上圖配置中server.x的這個x(1,2,3)值,zookeeper啟動時會讀取這個文件,拿到里面的數據與 zoo.cfg 里面
的配置信息比較從而判斷到底是那個server(節點)。



4. 啟動節點
切換到bin目錄中查看一下:

啟動方法查看:

啟動節點1:
[root@server-1 bin]# ./zkServer.sh start // 默認會到同級目錄conf中尋找zoo.cfg文件,所以默認不用加配置文件

同樣的,啟動節點2,節點3:
[root@server-2 bin]# ./zkServer.sh start
[root@server-3 bin]# ./zkServer.sh start
啟動后,會在當前bin目錄下生成一個日志zookeeper.out,如果啟動不成功里面會有錯,可供排錯使用。
5. 查看節點狀態
當三台節點都啟動完畢后可以查看他們各自在集群中的狀態:
[root@server-1 bin]# ./zkServer.sh status



至此,zookeeper集群部署成功。
排錯:如果查看集群狀態的時候報“Error contacting service. It is probably not running.”請檢查防火牆是不是阻擋了contacting。

6. zookeeper客戶端使用
使用bin目錄下的客戶端登錄腳本:zkCli.sh

比方說:登錄、查看、退出。
[root@server-1 bin]# ./zkCli.sh -server 192.168.1.21:2181 //連本地節點
[root@server-1 bin]# ./zkCli.sh -server 192.168.1.21 //不帶端口就采用默認2181端口
[root@server-1 bin]# ./zkCli.sh //不帶參數回車默認連接本地IP和2181端口
[root@server-1 bin]# ./zkCli.sh -server 192.168.1.22 //也可以連接節點2的zk
登錄后操作:

說明:客戶端連接后,用get / 命令可以發現此時只有zookeeper一項;如果此Zookeeper用於對Kafka或JStorm等提供服務,
則還會有相應的其他目錄,后面在介紹kafka時會有相關內容。
kafka集群安裝:http://www.cnblogs.com/ding2016/p/8282907.html
7. 集群測試
這里就模擬斷掉"leader"節點——node-2,另外兩台會通過之前設定的3888這個端口來重新選舉leader,結果如下:


結束.
