参考
https://zookeeper.apache.org/doc/r3.4.13/zookeeperStarted.html
说明
zookeeper是java语言。
一个jar包。所以无需安装。
步骤
1.下载 解压缩
目录结构

2.修改配置文件
tickTime=2000
dataDir=/Users/gongzhihao/zookeeper
clientPort=2181
原始内容
# 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=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# 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
3.启动服务器和启动客户端
gongzhihaodeMacBook-Pro:zookeeper-3.4.13 gongzhihao$ bin/zkServer.sh start //启动服务器
ZooKeeper JMX enabled by default
Using config: /Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
gongzhihaodeMacBook-Pro:zookeeper-3.4.13 gongzhihao$ bin/zkCli.sh -server 127.0.0.1:2181 //启动客户端
Connecting to 127.0.0.1:2181
2019-03-09 10:38:57,447 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
2019-03-09 10:38:57,450 [myid:] - INFO [main:Environment@100] - Client environment:host.name=192.168.1.100
2019-03-09 10:38:57,450 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_181
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../build/classes:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../build/lib/*.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../lib/slf4j-log4j12-1.7.25.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../lib/slf4j-api-1.7.25.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../lib/netty-3.10.6.Final.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../lib/log4j-1.2.17.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../lib/jline-0.9.94.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../lib/audience-annotations-0.5.0.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../zookeeper-3.4.13.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../src/java/lib/*.jar:/Users/gongzhihao/Downloads/zookeeper-3.4.13/bin/../conf:
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/Users/gongzhihao/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/var/folders/m9/yshd99dx1g38gtyxvv3k201r0000gn/T/
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Mac OS X
2019-03-09 10:38:57,451 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=x86_64
2019-03-09 10:38:57,452 [myid:] - INFO [main:Environment@100] - Client environment:os.version=10.13.6
2019-03-09 10:38:57,452 [myid:] - INFO [main:Environment@100] - Client environment:user.name=gongzhihao
2019-03-09 10:38:57,452 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/Users/gongzhihao
2019-03-09 10:38:57,452 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/Users/gongzhihao/Downloads/zookeeper-3.4.13
2019-03-09 10:38:57,452 [myid:] - INFO [main:ZooKeeper@442] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@41906a77
Welcome to ZooKeeper!
2019-03-09 10:38:57,474 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2019-03-09 10:38:57,525 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/127.0.0.1:2181, initiating session
[zk: 127.0.0.1:2181(CONNECTING) 0] 2019-03-09 10:38:57,547 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x100001b1d570000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: 127.0.0.1:2181(CONNECTED) 0]
4.执行一些命令
[zk: 127.0.0.1:2181(CONNECTED) 0] help //帮助命令
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
[zk: 127.0.0.1:2181(CONNECTED) 1]
[zk: 127.0.0.1:2181(CONNECTED) 1] ls / //列出目录
[zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 2]
[zk: 127.0.0.1:2181(CONNECTED) 2] create /zk_test my_data //创建目录 数据
Created /zk_test
[zk: 127.0.0.1:2181(CONNECTED) 3] ls /
[zookeeper, zk_test] //目录已经创建成功
[zk: 127.0.0.1:2181(CONNECTED) 4]
[zk: 127.0.0.1:2181(CONNECTED) 4] get /zk_test //查看指定目录的数据
my_data //数据
cZxid = 0x2
ctime = Sat Mar 09 10:43:47 CST 2019
mZxid = 0x2
mtime = Sat Mar 09 10:43:47 CST 2019
pZxid = 0x2
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7 //数据长度
numChildren = 0
[zk: 127.0.0.1:2181(CONNECTED) 5]
[zk: 127.0.0.1:2181(CONNECTED) 5] set /zk_test junk //修改数据
cZxid = 0x2
ctime = Sat Mar 09 10:43:47 CST 2019
mZxid = 0x3
mtime = Sat Mar 09 10:47:10 CST 2019
pZxid = 0x2
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
[zk: 127.0.0.1:2181(CONNECTED) 6] get /zk_test
junk //修改成功
cZxid = 0x2
ctime = Sat Mar 09 10:43:47 CST 2019
mZxid = 0x3
mtime = Sat Mar 09 10:47:10 CST 2019
pZxid = 0x2
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
[zk: 127.0.0.1:2181(CONNECTED) 7]
[zk: 127.0.0.1:2181(CONNECTED) 7] delete /zk_test //删除目录
[zk: 127.0.0.1:2181(CONNECTED) 8] ls /
[zookeeper] //删除成功
[zk: 127.0.0.1:2181(CONNECTED) 9]
集群
略。