ZooKeeper is a centralized service for maintaining configuration
information, naming, providing distributed synchronization, and
providing group services.

All of these kinds of services are used in some form or another by
distributed applications. Each time they are implemented there is a
lot of work that goes into fixing the bugs and race conditions that
are inevitable. Because of the difficulty of implementing these kinds
of services, applications initially usually skimp on them ,which make
them brittle in the presence of change and difficult to manage. Even
when done correctly, different implementations of these services lead
to management complexity when the applications are deployed.

This script requires a 'zookeeper' user/group to exist before running.
The recommended UID/GID is 322. You can create these like so:

groupadd -g 322 zookeeper
useradd -u 322 -g 322 -c "Zookeeper user" \
        -d /var/lib/zookeeper -s /bin/sh zookeeper
