本文旨在简单的在linux上配置zookeeper,window上应该是同理
1、下载
地址:http://zookeeper.apache.org/releases.html
本人使用的版本是:zookeeper-3.4.6.tar.gz
2、准备服务器
本人使用虚拟机:
IP地址分别是:192.168.122.130,192.168.122.131,192.168.122.132
3、安装
解压1步骤中的压缩包到 /usr/local/zookeeper
tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /usr/local/zookeeper
配置环境变量:
vi ~/.bash_profile
增加
ZOOKEEPER_HOME=/usr/local/zookeeper
PATH=$PATH:$ZOOKEEPER_HOME/bin
修改配置文件:
cd /usr/local/zookeeper
mkdir zkdata zkdatalog ##创建数据和日志目录
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
增加下面几项:
dataDir=/usr/local/zookeeper/zkdata
dataLogDir=/usr/local/zookeeper/zkdatalog
server.0=192.168.122.130:2888:3888
server.1=192.168.122.131:2888:3888
server.2=192.168.122.132:2888:3888
如下图:
在对应的机器/usr/local/zookeeper/zkdata 目录下,增加myid文件
本人的配置是:
192.168.122.130 机器上的myid文件内容是 0
192.168.122.130 机器上的myid文件内容是 1
192.168.122.130 机器上的myid文件内容是 2
对照zoo.cfg里面的配置编写myid
一台机器配置完后,其他机器同步也要配置,可以使用scp直接传过去
各服务器配置完成后:每台机器通过 zkServer.sh start 启动zk服务
通过zkServer.sh status查看节点状态
192.168.122.130
[root@localhost zookeeper]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@localhost zookeeper]#
192.168.122.131
[root@localhost soft]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@localhost soft]#
192.168.122.132
[root@localhost soft]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@localhost soft]#
开始测试:
任意机器上输入 zkCli.sh
[root@localhost zkdata]# zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper, test]
[zk: localhost:2181(CONNECTED) 1] create /test2 1
Created /test2
[zk: localhost:2181(CONNECTED) 2] get /test2
1
cZxid = 0x100000010
ctime = Mon Oct 22 16:04:59 CST 2018
mZxid = 0x100000010
mtime = Mon Oct 22 16:04:59 CST 2018
pZxid = 0x100000010
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0
[zk: localhost:2181(CONNECTED) 3]
可以去其他机器上看下创建的节点是否存在;
zk的命令:
ls / 查找根目录
create /test abc 创建节点并赋值
get /test 获取指定节点的值
set /test cb 设置已存在节点的值
rmr /test 递归删除节点
delete /test/test01 删除不存在子节点的节点