一、安装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...