zookeeper 在linux上安装 & 启动 & 基本操作
一、安装java
sudo apt-get update sudo apt-get install default-jre
二、安装zookeeper
下载
wget "http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz"
解压
tar -xf zookeeper-3.4.14.tar.gz
创建配置文件
cd zookeeper-3.4.14/conf/ cp zoo_sample.cfg zoo.cfg
启动
cd zookeeper-3.4.14/bin/ ./zkServer.sh start
三、伪集群模式
拷贝zookeeper
cp zookeeper-3.4.14 zookeeper-1 -r cp zookeeper-3.4.14 zookeeper-2 -r cp zookeeper-3.4.14 zookeeper-3 -r
修改配置:修改的为各自目录conf下的zoo.cfg,将dataDir、dataLogDir及clientPort修改为各自不同的,并增加ip列表。如zk1的配置:
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/mnt/zookeeper-1/data dataLogDir=/mnt/zookeeper-1/log # the port at which the clients will connect clientPort=12181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 server.1=127.0.0.1:12888:13888 server.2=127.0.0.1:14888:15888 server.2=127.0.0.1:16888:17888
创建data、log目录与myid文件
mkdir -p /mnt/zookeeper-1/data mkdir -p /mnt/zookeeper-2/data mkdir -p /mnt/zookeeper-3/data mkdir -p /mnt/zookeeper-1/log mkdir -p /mnt/zookeeper-2/log mkdir -p /mnt/zookeeper-3/log echo 1 > /mnt/zookeeper-1/data/myid echo 2 > /mnt/zookeeper-2/data/myid echo 3 > /mnt/zookeeper-3/data/myid
分别启动三个zk
./zookeeper-1/bin/zkServer.sh start ./zookeeper-2/bin/zkServer.sh start ./zookeeper-3/bin/zkServer.sh start
查看状态
root@iZwz9hextk0ee6gik32377Z:~/zookeeper# for((idx=1;idx<=3;++idx)); do ./zookeeper-${idx}/bin/zkServer.sh start; done ZooKeeper JMX enabled by default Using config: /root/zookeeper/zookeeper-1/bin/../conf/zoo.cfg Starting zookeeper ... STARTED ZooKeeper JMX enabled by default Using config: /root/zookeeper/zookeeper-2/bin/../conf/zoo.cfg Starting zookeeper ... STARTED ZooKeeper JMX enabled by default Using config: /root/zookeeper/zookeeper-3/bin/../conf/zoo.cfg Starting zookeeper ... STARTED root@iZwz9hextk0ee6gik32377Z:~/zookeeper# for((idx=1;idx<=3;++idx)); do ./zookeeper-${idx}/bin/zkServer.sh status; done ZooKeeper JMX enabled by default Using config: /root/zookeeper/zookeeper-1/bin/../conf/zoo.cfg Mode: follower ZooKeeper JMX enabled by default Using config: /root/zookeeper/zookeeper-2/bin/../conf/zoo.cfg Mode: leader ZooKeeper JMX enabled by default Using config: /root/zookeeper/zookeeper-3/bin/../conf/zoo.cfg Mode: follower
四、集群模式
与伪集群模式类似,区别是部署在不同机器。
五、基本操作
连接zk。执行bin目录下的zkCli.sh。由于部署时ip已不是默认ip 2181,需要指定ip port
./zkCli.sh -server 127.0.0.1:12181
[zk: 127.0.0.1:12181(CONNECTED) 5] ls / [zookeeper] [zk: 127.0.0.1:12181(CONNECTED) 6] create /test test Created /test [zk: 127.0.0.1:12181(CONNECTED) 7] ls / [zookeeper, test] [zk: 127.0.0.1:12181(CONNECTED) 8] get /test test cZxid = 0x400000006 ctime = Mon Apr 06 22:01:48 CST 2020 mZxid = 0x400000006 mtime = Mon Apr 06 22:01:48 CST 2020 pZxid = 0x400000006 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 4 numChildren = 0 [zk: 127.0.0.1:12181(CONNECTED) 9] delete /test [zk: 127.0.0.1:12181(CONNECTED) 10] ls / [zookeeper] [zk: 127.0.0.1:12181(CONNECTED) 11] get /test Node does not exist: /test [zk: 127.0.0.1:12181(CONNECTED) 12] quit Quitting...
六、字段含义
cZxid
创建此znode的zxidctime
创建此znode的时间。
mZxid
最后修改此znode的zxid。
mtime
最后一次修改此znode的时间。pZxid
最后一次修改子节点的zxid。
cversion
此znode的子节点的更改次数。(实际操作发现是创建/删除一级子节点)
dataVersion
此znode的数据更改的次数。
aclVersion
更改此znode的ACL的次数。
ephemeralOwner
如果znode是临时节点,则此znode所有者的会话id。如果它不是一个临时节点,则为零。
dataLength
此znode的数据字段的长度。
numChildren
这个znode的子节点的数目。
参考链接:
http://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html