先到apache官网进行下载apache
首先从官网下载ZooKeeper压缩包,而后解压下载获得的ZooKeeper压缩包,发现有“bin,conf,lib”等目录。“bin目录”中存放有运行脚本;“conf目录”中存放有配置文件;“lib目录”中存放有运行所须要第三方库。分布式
在“conf”目录下,将“zoo_sample.cfg”的文件重命名为"zoo.cfg"spa
而后编辑"zoo.cfg",其中内容为下命令行
参数说明code
#tickTime: zookeeper中使用的基本时间单位, 毫秒值. #dataDir: 数据目录. 能够是任意目录. #dataLogDir: log目录, 一样能够是任意目录. 若是没有设置该参数, 将使用和#dataDir相同的设置. #clientPort: 监听client链接的端口号.
运行ZooKeeper Serverserver
执行./bin/zkServer.sh start命令,运行ZooKeeper Server进程,获得如图所示结果,表示后台运行ZooKeeper Server进程成功。进程
中止:./bin/zkServer.sh stop
也能够执行bin/zkServer.sh start-foreground命令,非后台运行ZooKeeper Server进程资源
集群模式有两种形式:
1)使用多台机器,在每台机器上运行一个ZooKeeper Server进程;
2)使用一台机器,在该台机器上运行多个ZooKeeper Server进程。
在生产环境中,通常使用第一种形式,在练习环境中,通常使用第二种形式。it
参数配置注意事项:
1)同一个ZooKeeper集群内,不一样ZooKeeper Server进程的标识须要不同,即myid文件内的值须要不同
2)采用上述第2种形式构建ZooKeeper集群,须要注意“目录,端口号”等资源的不可共享性,若是共享会致使ZooKeeper Server进程不能正常运行,好比“data目录,几个监听端口号”都不能被共享table
myid | Data目录 | Client | Server | Leader | 配置文件 |
---|---|---|---|---|---|
1 | /z1/data | 2181 | 2222 | 2223 | z1.cfg |
2 | /z2/data | 2182 | 3333 | 3334 | z2.cfg |
3 | /z3/data | 2183 | 4444 | 4445 | z3.cfg |
配置以下:
# zx.cfg tickTime=2000 initLimit=10 syncLimit=2 dataDir=/usr/myenv/zookeeper-3.4.8/zx/data clientPort=218x # server.x中的“x”表示ZooKeeper Server进程的标识 server.1=127.0.0.1:2222:2225 server.2=127.0.0.1:3333:3335 server.3=127.0.0.1:4444:4445
注:
initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其他的server为follower. initLimit参数配置初始化链接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
bin/zkServer.sh start deploy/z1/z1.cfg, bin/zkServer.sh start deploy/z2/z2.cfg bin/zkServer.sh start deploy/z3/z3.cfg
运行上述配置的3个ZooKeeper Server进程。
执行命令
bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
创建ZooKeeper Client端到ZooKeeper集群的链接会话。