1.配置
先下载zookeeper-3.4.6.tar.gz到本机
下载地址:http://apache.fayea.com/zookeeper/
可以选择需要的版本,本文下载的是zookeeper-3.4.6.tar.gz,解压得到文件夹zookeeper-3.4.6
本文示例的是在一台机器上部署了3个server的例子。
在主文件夹下建立一个zookeeper文件夹,在zookeeper文件夹里建立三个文件夹server1,server2,server3,
然后每个文件夹里面解压一个zookeeper的下载包,并新建data,dataLog,logs目录,总体结构如下:
先进入/server1/data/目录,创建一个myid的文件,里面写入一个数字,server1对应myid文件写入1,server2对应myid文件写入2,server3对应myid文件写入3。
然后进入/server1/conf目录,该目录包含3个文件:
复制zoo_sample.cfg文件,并命名为zoo.cfg,打开zoo.cfg,文件内容如下:
1、修改dataDir为data所在绝对路径,本人修改示例如下:
dataDir=/Users/MJ/zookeeper/server1/data
2、添加dataLogDir为dataLog所在绝对路径,本人修改示例如下:
dataLogDir=/Users/MJ/zookeeper/server1/dataLog
3、如果在一台机器上部署一个server,clientPort使用默认的2181即可,如果在一台机器上部署多个server,那么每个server需要制定不同的clientPort,例如server1是2181,server2是2182,server3是2183,dataDir和dataLogDir也需要制定相应的路径。
4、在文件末尾添加如下内容:
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
需要注意是 server.X ,这个X就是对应 /data/myid中的数字。在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg需要配成server.1,server.2,server.3。因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突,其中第一个端口用来集群成员的信息交换,第二个端口是在leader挂掉时专门用来进行选举leader所用。
2.启动ZooKeeper伪机群的所有服务器
分别进入三个server的bin目录下,使用如下命令启动server服务:
./zkServer.sh start
输出如下类似信息:
JMX enabled by default
Using config: /Users/MJ/zookeeper/server1/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
全部启动完成后,使用如下命令查看server状态,
./zkServer.sh status
输出如下类似信息表示选为leader:
JMX enabled by default
Using config: /Users/lichengjin/zookeeper/server2/bin/../conf/zoo.cfg
Mode: leader
输出如下类似信息表示选为follower:
JMX enabled by default
Using config: /Users/MJ/zookeeper/server1/bin/../conf/zoo.cfg
Mode: follower
如想关闭server服务,使用如下命令:
./zkServer.sh stop
输出如下类似信息:
JMX enabled by default
Using config: /Users/MJ/zookeeper/server1/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
3.接入客户端
进入任意一个server的bin目录下,启动一个客户端,接入服务。
./zkCli.sh –server localhost:2181