I’m happy to announce the availability of zookeepercli: a lightweight, simple, fast and controlled command line client for ZooKeeper.
zookeepercli allows for:
- Basic CRUD-like operations:
create
,set
,delete
,exists
,get
,ls
(akachildren
). - Extended operations:
lsr
(ls recursive),creater
(create recursively) - Well formatted and controlled output: supporting either
txt
orjson
format - Single, no-dependencies binary file, based on a native Go ZooKeeper library by github.com/samuel/go-zookeeper (LICENSE)
I was dissatisfied with existing command line access to ZooKeeper. Uncontrolled and noisy output as well as large footprint were among the reasons. zookeepercli overcomes the above and provides with often required powers.
Usage samples:
$ zookeepercli --servers srv-1,srv-2,srv-3 -c create /demo_only "path placeholder" $ zookeepercli --servers srv-1,srv-2,srv-3 -c create /demo_only/key1 "value1" $ zookeepercli --servers srv-1,srv-2,srv-3 -c create /demo_only/key2 "value2" $ zookeepercli --servers srv-1,srv-2,srv-3 -c create /demo_only/key3 "value3" $ zookeepercli --servers srv-1,srv-2,srv-3 -c ls /demo_only key3 key2 key1 # Same as above, JSON format output: $ zookeepercli --servers srv-1,srv-2,srv-3 --format=json -c ls /demo_only ["key3","key2","key1"] $ zookeepercli --servers srv-1,srv-2,srv-3 -c delete /demo_only/key1 $ zookeepercli --servers srv-1,srv-2,srv-3 -c delete /demo_only/key2 $ zookeepercli --servers srv-1,srv-2,srv-3 -c delete /demo_only/key3 $ zookeepercli --servers srv-1,srv-2,srv-3 -c delete /demo_only # Create a path recursively (auto-generate parent directories if not exist): $ zookeepercli --servers=srv-1,srv-2,srv-3 -c creater "/demo_only/child/key1" "val1" $ zookeepercli --servers=srv-1,srv-2,srv-3 -c creater "/demo_only/child/key2" "val2" $ zookeepercli --servers=srv-1,srv-2,srv-3 -c get "/demo_only/child/key1" val1 # This path was auto generated due to recursive create: $ zookeepercli --servers=srv-1,srv-2,srv-3 -c get "/demo_only" zookeepercli auto-generated # ls recursively a path and all sub children: $ zookeepercli --servers=srv-1,srv-2,srv-3 -c lsr "/demo_only" child child/key1 child/key2
zookeepercli is released as open source by Outbrain under the Apache 2.0 license.
Quick links:
- Project page
- Pre-built binaries for download
- License
Good. We use this one at home.
https://github.com/rs/zkfarmer
Nice! Thanks for the tip — will take a look
Do you use zookeeper to manager master/slave DBs?
No. Our zookeeper setup has almost nothing to do with mysql, actually. At least not directly. I’m personally using it as a distributed, cross DC, highly available key-value store, where I keep note of available mysql snapshots and of general mysql health.
Ok, nice.
No problem with intensive writes? (if occurs)