1.zookeeper安装
首先从官网下载安装包: 官网地址,这里选择3.4.14
将zookeeper-3.4.14.tar.gz上传至linux虚拟机,这里在/usr/local目录下安装
cd /usr/local/
#解压安装包
tar -zxvf zookeeper-3.4.14.tar.gz
ls
进入zookeeper-3.4.14目录,创建目录data以及data/logs,用来存放zookeeper数据以及日志文件
cd zookeeper-3.4.14
mkdir data
mkdir -p data/logs
修改zk配置文件
cd conf/
#重命名配置文件为zoo.cfg
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
#修改数据及日志文件存放目录
dataDir=/usr/local/zookeeper-3.4.14/data/
dataLogDir=cd /usr/local/zookeeper-3.4.14/data/log
修改完成,启动zk,进入bin目录
cd /usr/local/zookeeper-3.4.14/bin/
ll
-rwxr-xr-x. 1 2002 2002 232 3月 7 2019 README.txt
-rwxr-xr-x. 1 2002 2002 1937 3月 7 2019 zkCleanup.sh
-rwxr-xr-x. 1 2002 2002 1056 3月 7 2019 zkCli.cmd
-rwxr-xr-x. 1 2002 2002 1534 3月 7 2019 zkCli.sh
-rwxr-xr-x. 1 2002 2002 1759 3月 7 2019 zkEnv.cmd
-rwxr-xr-x. 1 2002 2002 2919 3月 7 2019 zkEnv.sh
-rwxr-xr-x. 1 2002 2002 1089 3月 7 2019 zkServer.cmd
-rwxr-xr-x. 1 2002 2002 6773 3月 7 2019 zkServer.sh
-rwxr-xr-x. 1 2002 2002 996 3月 7 2019 zkTxnLogToolkit.cmd
-rwxr-xr-x. 1 2002 2002 1385 3月 7 2019 zkTxnLogToolkit.sh
#启动zk
./zkServer.sh start
ZooKeeper JMX enabled by default
#启动成功
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
2.集群搭建
这里在一台虚拟机上做伪集群搭建
搭建目录:/usr/local/zkCluster
首先将zookeeper-3.4.14.tar.gz解压至zkCluster下
tar -zxvf zookeeper-3.4.14.tar.gz -C zkCluster/
cd zkCluster/
#将解压后的目录重命名为zookeeper01
mv zookeeper-3.4.14 zookeeper01
#拷贝zookeeper01
cp -r zookeeper01/ zookeeper02
cp -r zookeeper01/ zookeeper03
zookeeper01,zookeeper02,zookeeper03作为zk集群的3个节点,分别在每个目录下创建data,data/logs目录,同安装步骤一样,之后编辑zoo.cfg
端口号配置:
zookeeper01 2881
zookeeper02 2882
zookeeper01 2883
dataDir=/usr/local/zkCluster/zookeeper01/data/
dataLogDir=/usr/local/zkCluster/zookeeper01/data/logs/
# the port at which the clients will connect
clientPort=2181
dataDir=/usr/local/zkCluster/zookeeper02/data/
dataLogDir=/usr/local/zkCluster/zookeeper02/data/logs/
# the port at which the clients will connect
clientPort=2182
dataDir=/usr/local/zkCluster/zookeeper03/data/
dataLogDir=/usr/local/zkCluster/zookeeper01/data/logs/
clientPort=2183
配置集群,在每个zk的data目录下创建一个myid文件,内容分别为1、2、3,代表各自节点的服务器ID
vim zookeeper01/data/myid
1
vim zookeeper02/data/myid
2
vim zookeeper03/data/myid
3
编辑每个zk目录下的/conf/zoo.cfg,加入如下配置:
server.1=192.168.8.186:2181 3881
server.2=192.168.8.186:2182 3882
server.3=192.168.8.186:2183 3883
#server.服务器ID=服务器IP地址:服务器之间通信端⼝:服务器之间投票选举端⼝
一次启动3个zk实例
3.常用命令
使用/zkCli.sh连接zk服务器
1)创建节点
create [-s][-e] path data acl
其中,-s或-e分别指定节点特性,顺序或临时节点,若不指定,则创建持久节点;acl⽤来进⾏权限控制。
2)读取节点
与读取相关的命令有ls 命令和get 命令
ls命令可以列出Zookeeper指定节点下的所有⼦节点,但只能查看指定节点下的第⼀级的所有⼦节点;
get命令可以获取Zookeeper指定节点的数据内容和属性信息。
若获取根节点下⾯的所有⼦节点,使⽤ls / 命令即可
3)更新节点
set path data [version]
其中,data就是要更新的新内容,version表示数据版本,在zookeeper中,节点的数据是有版本概
念的,这个参数⽤于指定本次更新操作是基于Znode的哪⼀个数据版本进⾏的,如将/zk-permanent节
点的数据更新为456,可以使⽤如下命令:set /zk-permanent 456
4)删除节点
delete path [version]
其中version也是表示数据版本,使⽤delete /zk-permanent 命令即可删除/zk-permanent节点
若删除节点存在⼦节点,那么⽆法删除该节点,必须先删除⼦节点,再删除⽗节点