2

单机版安装

进入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的目录结构及内容:
clipboard.png

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 所表示的目录下

clipboard.png

文件内容是: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

clipboard.png

集群模式

  • 修改 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节点,如下如所示:
clipboard.png

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

clipboard.png

  • 读取节点
ls / # 获取根节点下所有节点
get /zk-book # 获取指定节点的内容

clipboard.png

  • 更新节点内容
set /zk-book 456

clipboard.png

  • 删除节点
delete /zk-book

clipboard.png


一只小小鸟
144 声望25 粉丝

如何做一个深层次的思考者,从简单开始、从记录开始。