zookeeper操作记录

510 阅读3分钟

定义

ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

zookeeper数据结构

zookkeeper 提供的名称空间非常类似于标准文件系统,key-value的形式存储。名称key由斜线/分割的一系列路径元素,zookeeper名称空间中的每个节点都是由一个路径标识。

image.png

如上图所示根路径为“/”
/app1
/app1/name
/app1/desc
/app2/name

使用docker进行构建zookeeper容器

docker pull zookeeper:3.4
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime zookeeper:3.4

进入容器
docker exec -it 9ce28a0fe383 sh

重启

root@9ce28a0fe383:/zookeeper-3.4.14/bin# sh zkServer.sh restart /conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Stopping zookeeper ... no zookeeper to stop (could not find file /data/zookeeper_server.pid)
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Starting zookeeper ... STARTED

查看状态

root@9ce28a0fe383:/zookeeper-3.4.14/bin# sh zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: standalone

连接

root@9ce28a0fe383:/zookeeper-3.4.14/bin# sh zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
2021-04-18 04:07:56,680 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.14-4c25d480e66aadd371de8bd2fd8da255ac140bcf, built on 03/06/2019 16:18 GMT
2021-04-18 04:07:56,688 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=9ce28a0fe383
2021-04-18 04:07:56,689 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_282
2021-04-18 04:07:56,700 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2021-04-18 04:07:56,701 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/local/openjdk-8
2021-04-18 04:07:56,701 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/zookeeper-3.4.14/bin/../zookeeper-server/target/classes:/zookeeper-3.4.14/bin/../build/classes:/zookeeper-3.4.14/bin/../zookeeper-server/target/lib/*.jar:/zookeeper-3.4.14/bin/../build/lib/*.jar:/zookeeper-3.4.14/bin/../lib/slf4j-log4j12-1.7.25.jar:/zookeeper-3.4.14/bin/../lib/slf4j-api-1.7.25.jar:/zookeeper-3.4.14/bin/../lib/netty-3.10.6.Final.jar:/zookeeper-3.4.14/bin/../lib/log4j-1.2.17.jar:/zookeeper-3.4.14/bin/../lib/jline-0.9.94.jar:/zookeeper-3.4.14/bin/../lib/audience-annotations-0.5.0.jar:/zookeeper-3.4.14/bin/../zookeeper-3.4.14.jar:/zookeeper-3.4.14/bin/../zookeeper-server/src/main/resources/lib/*.jar:/conf:
2021-04-18 04:07:56,702 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2021-04-18 04:07:56,702 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2021-04-18 04:07:56,703 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2021-04-18 04:07:56,703 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2021-04-18 04:07:56,704 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2021-04-18 04:07:56,704 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=4.19.121-linuxkit
2021-04-18 04:07:56,705 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2021-04-18 04:07:56,705 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2021-04-18 04:07:56,706 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/zookeeper-3.4.14/bin
2021-04-18 04:07:56,710 [myid:] - INFO  [main:ZooKeeper@442] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5ce65a89
Welcome to ZooKeeper!
2021-04-18 04:07:56,762 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1025] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2021-04-18 04:07:56,872 [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] 2021-04-18 04:07:56,947 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x10002845bf60000, negotiated timeout = 30000

常见命令

查看
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 2] ls /zookeeper
[quota]
[zk: 127.0.0.1:2181(CONNECTED) 3] ls /zookeeper/quota
[]

相关命令参数

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