进入zooKeeper官网:http://zookeeper.apache.org/,找到你想下载的版本,我这里下载的是 zookeeper 3.5.4 版本。apache
/Users/shifeifei/Software/zk-3.5.4
这是个人目录。vim
执行解压命令:bash
tar -zxvf zookeeper-3.5.4.tar.gz
获得目录 , zookeeper-3.5.4-beta,可观察到zookeeper的目录结构及内容:spa
vim ~/.bash_profile export ZK_HOME=/Users/shifeifei/Software/zk-3.5.4/zookeeper-3.5.4-beta-1 export PATH=$ZK_HOME/bin:$PATH source ~/.bash_profile
进入到目录code
/Users/shifeifei/Software/zk-3.5.4/zookeeper-3.5.4-beta-1/conf
修改文件 zoo_sample.cfg 文件内容,并从新命名为 zoo.cfgserver
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-1 dataLogDir=/Users/shifeifei/Software/zk-3.5.4/zk-log/ clientPort=2181 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=127.0.0.1:2888:3888
其中 dataDir 和 dataLogDir 目录是你自定义指定的。ip
文件内容是:server.1=127.0.0.1:2888:3888 中的 server.1 的 1get
进入目录it
/Users/shifeifei/Software/zk-3.5.4/zookeeper-3.5.4-beta-1/bin
执行命令:
./zkServer.sh startclass
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-1 #dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-2 #dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-3 dataLogDir=/Users/shifeifei/Software/zk-3.5.4/zk-log/ clientPort=2181 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=ip1:2888:3888 server.2=ip2:2888:3888 server.3=ip3:2888:3888
在集群模式下,集群中的每一台机器都要感知到其余机器的存在,因此集群机器中的 zoo.cfg 文件中经过:
server.id=ip:port:port 来标识集群中不一样的机器。其中 serverId 用来标识机器在集群中的序号,同时,对应的每台机器在都须要在 dataDir 目录下建立一个 myid 文件,该文件内容是 serverId 值,该 id 的取值范围是 1-255。
所谓的伪集群就是用一台集群来模拟真实集群中的全部机器,只须要把 zoo.cfg 文件修改以下
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-1 #dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-2 #dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-3 dataLogDir=/Users/shifeifei/Software/zk-3.5.4/zk-log/ clientPort=2181 #clientPort=2182 #clientPort=2183 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=ip1:2888:3888 server.2=ip1:2889:3889 server.3=ip1:2890:3890
在目录 /Users/shifeifei/Software/zk-3.5.4 下分别建立三个zk节点,以下如所示:
zookeeper-3.5.4-beta-1 zookeeper-3.5.4-beta-2 zookeeper-3.5.4-beta-3
目录下 conf/zoo.cfg 分别修改 dataDir 目录便可,同时把 dataDir 目录的 myid 内容改为对应的 serverId 值,即:
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-1 dataLogDir=/Users/shifeifei/Software/zk-3.5.4/zk-log/ clientPort=2181 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=ip1:2888:3888 server.2=ip1:2889:3889 server.3=ip1:2890:3890
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-2 dataLogDir=/Users/shifeifei/Software/zk-3.5.4/zk-log/ clientPort=2182 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=ip1:2888:3888 server.2=ip1:2889:3889 server.3=ip1:2890:3890
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/Users/shifeifei/Software/zk-3.5.4/zk-data/zk-data-3 dataLogDir=/Users/shifeifei/Software/zk-3.5.4/zk-log/ clientPort=2183 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1 server.1=ip1:2888:3888 server.2=ip1:2889:3889 server.3=ip1:2890:3890
分别启动三个zk节点
客户端命令在 /Users/shifeifei/Software/zk-3.5.4/zookeeper-3.5.4-beta-1 目录下,进入客户端
./zkCli.sh
create /zk-book 123 #在zk的根节点下建立一个 /zk-book 节点,节点内容是 123
ls / # 获取根节点下全部节点 get /zk-book # 获取指定节点的内容
set /zk-book 456
delete /zk-book