单机版安装
进入zooKeeper官网:http://zookeeper.apache.org/,找到你想下载的版本,我这里下载的是 zookeeper 3.5.4 版本。
把 zookeeper-3.5.4.tar.gz 放到指定目录
/Users/shifeifei/Software/zk-3.5.4
这是我的目录。
执行解压命令:
tar -zxvf zookeeper-3.5.4.tar.gz
得到目录 , zookeeper-3.5.4-beta,可观察到zookeeper的目录结构及内容:
zookeeper 环境变量配置
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
zookeeper 相关配置
- 配置 zoo.cfg 文件
进入到目录
/Users/shifeifei/Software/zk-3.5.4/zookeeper-3.5.4-beta-1/conf
修改文件 zoo_sample.cfg 文件内容,并重新命名为 zoo.cfg
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 目录是你自定义指定的。
- 创建 myid 文件,该文件在 dataDir 所表示的目录下
文件内容是:server.1=127.0.0.1:2888:3888 中的 server.1 的 1
启动服务
进入目录
/Users/shifeifei/Software/zk-3.5.4/zookeeper-3.5.4-beta-1/bin
执行命令:
./zkServer.sh start
集群模式
- 修改 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
#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 值,即:
- zookeeper-3.5.4-beta-1 节点:
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
- zookeeper-3.5.4-beta-2 节点
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
- zookeeper-3.5.4-beta-3 节点
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。