Randgalt edited this page Jun 27, 2012 · 12 revisions

Exhibitor provides these features/functions:

Instance Monitoring

Each Exhibitor instance monitors the ZooKeeper server running on the same server. If ZooKeeper is not running, Exhibitor will write the zoo.cfg file (see Cluster-wide Configuration below) and start it. If ZooKeeper crashes for some reason, Exhibitor will restart it.

Log Cleanup

In versions prior to ZooKeeper 3.4.x, log file maintenance is necessary. Exhibitor will periodically do this maintenance.


Backups in a ZooKeeper ensemble are more complicated than for a traditional data store (e.g. a RDBMS). Generally, most of the data in ZooKeeper is ephemeral. It would be harmful to blindly restore an entire ZooKeeper data set. What is needed is selective restoration to prevent accidental damage to a subset of the data set. Exhibitor enables this.

Exhibitor will periodically backup the ZooKeeper transaction files. Once backed up, you can index any of these transaction files. Once indexed, you can search for individual transactions and “replay” them to restore a given ZNode to ZooKeeper.

Cluster-wide Configuration

Exhibitor attempts to present a single console for your entire ZooKeeper ensemble. Configuration changes made in Exhibitor will be applied to the entire ensemble. Here are some of the shared configuration values:

Name Description
ZooKeeper Install Dir Path to the ZooKeeper server installation
ZooKeeper Data Dir Path where ZooKeeper should store its data
Log Index Dir Path where indexed transaction logs should be kept
Servers List of servers/server-ids in the ensemble
Additional Config Additional fields/values to store in zoo.cfg

Rolling Ensemble Changes

Exhibitor can update the servers in the ensemble in a rolling fashion so that the ZooKeeper ensemble can stay up and in quorum while the changes are being made.

Automatic Instance Management

Exhibitor can be configured to automatically add new instances to the ensemble and remove stale instances. This enables touchless and turn-key management of a ZooKeeper cluster.


Exhibitor provides a graphical tree view of the ZooKeeper ZNode hierarchy.

ZooKeeper Data Mutation

When enabled, Exhibitor can create/update/delete nodes in the ZooKeeper hierarchy.

Deadlock Detection

When using the Curator Lock recipes (or similar) Exhibitor can analyze a set of ZNodes that represent locks and determine if there is a potential deadlock.

Curator Integration

Exhibitor and Curator (Cur/Ex!) can be configured to work together so that Curator instances are updated for changes in the ensemble. Click here for details.


Exhibitor exposes a REST API for programmatic integration. See REST Introduction for details.