centos7下zookeeper叢集安裝部署
應用場景: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,結果如下: