Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Real World Use of Zookeeper [closed]

People also ask

Where is ZooKeeper used?

Apache ZooKeeper is a distributed coordination service which eases the development of distributed applications. It's used by projects like Apache Hadoop, HBase and others for different use cases like leader election, configuration management, node coordination, server lease management, etc.

What companies use zookeepers?

ZooKeeper is used by companies including Yelp, Rackspace, Yahoo!, Odnoklassniki, Reddit, NetApp SolidFire, Meta, Twitter and eBay as well as open source enterprise search systems like Solr.

When should I use ZooKeeper?

Apache ZooKeeper is used for maintaining centralized configuration information, naming, providing distributed synchronization, and providing group services in a simple interface so that we don't have to write it from scratch. Apache Kafka also uses ZooKeeper to manage configuration.

Is ZooKeeper using Paxos?

Although ZooKeeper provides similar functionality to the Paxos algorithm, the core consensus algorithm of ZooKeeper is not Paxos. The algorithm used in ZooKeeper is called ZAB, short for ZooKeeper Atomic Broadcast.


HBase uses Zookeeper for coordinating activities its "head node" was responsible for prior to the current version. The move to using Zookeeper means the central control is no longer a single point of failure.

Zookeeper is very versatile; here is an example of using it to build a distributed concurrent queue:

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

You can of course also use it to create resource locks, etc, in a distributed system.


Free Software Projects Powered by ZooKeeper:

  • AdroitLogic UltraESB
  • Akka
  • Eclipse Communication Framework
  • Eclipse Gyrex
  • GoldenOrb
  • Juju
  • Katta
  • KeptCollections
  • Mesos
  • Neo4j
  • Norbert
  • Talend ESB
  • redis_failover

Apache Projects Powered by ZooKeeper:

  • Apache Accumulo
  • Apache BookKeeper
  • Apache CXF DOSGi
  • Apache Flume
  • Apache Hadoop MapReduce
  • Apache HBase
  • Apache Hedwig
  • Apache Kafka
  • Apache S4
  • Apache Solr

Source: https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy


Old question, but since this page comes up first on a google search for zookeeper use cases, I figured it would be best to give an updated listing

  1. wikipedia
  2. zookeeper wiki
  3. real users

The Apache CXF implementation of DOSGi uses zookeeper for its service registration repository. Individual containers have a distributed software (dsw) bundle that listens for all service events and when a service status changes that has a property indicating distribution. The dsw talks to the discovery bundle which, in the reference implementation case, uses zookeeper to store service as ephemeral nodes. Other instances will look for changes to the node structure and register proxies on their local systems. The end result is you can code to plain OSGi and end up with transparent distribution.


Norbert is a good example from a scalable production system. I general, it integrates Netty, Protocol Buffers and Zookeeper into a lightweight framework for running clustered services. Protocol Buffers are used to specify your service API, Netty implements transport-layer abstractions and Zookeeper is essentially a fault-tolerant discovery service.

Every time a service instance is started Norbert registers it as available instance of a particular service type. From implementation perspective, it creates two Zookeeper trees:

  • "/ServiceName/members" which lists all known instances of the service
  • "/ServiceName/available" which lists currently available instances of the service

The most important property for each node is the url to use to connect to the corresponding service instance. It enables client-side load balancing - a Norbert client finds the list of urls for a given service name and attempt to connect to one of them is some order (e.g. round-robin or random).


There is a good article ZooKeeper - The King of Coordination about ZooKeeper at Elastic Cloud.

At Found, for example, we use ZooKeeper extensively for discovery, resource allocation, leader election and high priority notifications. In this article, we'll introduce you to this King of Coordination and look closely at how we use ZooKeeper at Found