Zookeeper是一個高效的分佈式協調服務,可以提供配置信息管理、命名、分佈式同步、集羣管理、數據庫切換等服務。它不適合用來存儲大量信息,可以用來存儲一些配置、發佈與訂閱等少量信息。Hadoop、Storm、消息中間件、RPC服務框架、分佈式數據庫同步系統,這些都是Zookeeper的應用場景。
Zookeeper集羣中節點個數一般爲奇數個(>=3),若集羣中Master掛掉,剩餘節點個數在半數以上時,就可以推舉新的主節點,繼續對外提供服務。
1、官網下載zookeeper. 選擇穩定版本
https://archive.apache.org/dist/zookeeper/
2、安裝
使用tar解壓要安裝的目錄即可。這裏解壓到/tmp目錄下。
[root@zhiyou ]# tar xf zookeeper-3.4.10.tar.gz -C /tmp
3、配置
創建配置文件,定義存儲數據和日誌目錄。
[root@zhiyou ]# cd /tmp/zookeeper-3.4.10
[root@zhiyou ]# mkdir ./{date,logs}
[root@zhiyou conf]# cp conf/zoo_sample.cfg conf/zoo.cfg
[root@zhiyou conf]# vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir= /tmp/zookeeper-3.4.10/data
cdataLogDir= /tmp/zookeeper-3.4.10/logs
clientPort=2181
4、啓動與關閉
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status
集羣的配置文檔:
[root@zy ]# vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir= /tmp/zookeeper-3.4.10/data
cdataLogDir= /tmp/zookeeper-3.4.10/logs
clientPort=2181
server.1=192.168.229.160:2888:3888
server.2=192.168.228.161:2888:3888
server.3=192.168.227.162:2888:3888
注:
server.id=host:port1:port2
其中id爲一個數字,表示zk進程的id,這個id也是dataDir目錄下myid文件的內容。
host是該zk進程所在的IP地址,port1表示follower和leader交換消息所使用的端口,port2表示選舉leader所使用的端口。