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所使用的端口。