Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Overview  





2 Architecture  





3 Use cases  





4 Client libraries  





5 Apache projects using ZooKeeper  





6 See also  





7 References  





8 External links  














Apache ZooKeeper






Español
Français

Italiano

Русский

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Apache ZooKeeper
Developer(s)Apache Software Foundation
Stable release

3.8.1 / January 30, 2023; 17 months ago (2023-01-30)[1]

RepositoryZooKeeper Repository
Written inJava
Operating systemCross-platform
TypeDistributed computing
LicenseApache License 2.0
Websitezookeeper.apache.org

Apache ZooKeeper is an open-source server for highly reliable distributed coordination of cloud applications.[2] It is a project of the Apache Software Foundation.

ZooKeeper is essentially a service for distributed systems offering a hierarchical key-value store, which is used to provide a distributed configuration service, synchronization service, and naming registry for large distributed systems (see Use cases).[3] ZooKeeper was a sub-project of Hadoop but is now a top-level Apache project in its own right.

Overview

[edit]

ZooKeeper's architecture supports high availability through redundant services. The clients can thus ask another ZooKeeper leader if the first fails to answer. ZooKeeper nodes store their data in a hierarchical name space, much like a file system or a tree data structure. Clients can read from and write to the nodes and in this way have a shared configuration service. ZooKeeper can be viewed as an atomic broadcast system, through which updates are totally ordered. The ZooKeeper Atomic Broadcast (ZAB) protocol is the core of the system.[4]

ZooKeeper is used by companies including Yelp, Rackspace, Yahoo!,[5] Odnoklassniki, Reddit,[6] NetApp SolidFire,[7] Meta,[8] Twitter[9] and eBay as well as open source enterprise search systems like Solr and distributed database systems like Apache Pinot.[10][11]

ZooKeeper is modeled after Google's Chubby lock service[12][13] and was originally developed at Yahoo! for streamlining the processes running on big-data clusters by storing the status in local log files on the ZooKeeper servers. These servers communicate with the client machines to provide them the information. ZooKeeper was developed in order to fix the bugs that occurred while deploying distributed big-data applications.

Some of the prime features of Apache ZooKeeper are:

Architecture

[edit]

Some common terminologies regarding the ZooKeeper architecture:

The services in the cluster are replicated and stored on a set of servers (called an "ensemble"), each of which maintains an in-memory database containing the entire data tree of state as well as a transaction log and snapshots stored persistently. Multiple client applications can connect to a server, and each client maintains a TCP connection through which it sends requests and heartbeats and receives responses and watch events for monitoring.[14]

Use cases

[edit]

Typical use cases for ZooKeeper are:

Client libraries

[edit]

In addition to the client libraries included with the ZooKeeper distribution, a number of third-party libraries such as Apache Curator and Kazoo are available that make using ZooKeeper easier, add additional functionality, additional programming languages, etc.

Apache projects using ZooKeeper

[edit]

See also

[edit]

References

[edit]
  1. ^ "Apache ZooKeeper - Releases". Retrieved 12 February 2023.
  • ^ "Apache Zookeeper4". Retrieved 31 January 2021.
  • ^ "Index - Apache ZooKeeper - Apache Software Foundation". cwiki.apache.org. Retrieved 2016-08-26.
  • ^ "Zookeeper Overview".
  • ^ "ZooKeeper/Powered By". Archived from the original on 2013-12-09. Retrieved 2012-01-25.
  • ^ "Why Reddit was down on Aug 11". 16 August 2016.
  • ^ "5 Big DaaS Challenges and How to Overcome Them | NetApp Newsroom". NetApp Newsroom. 2016-06-20. Retrieved 2017-05-24.[permanent dead link]
  • ^ "Location-Aware Distribution: Configuring servers at scale". Facebook Code. 2018-07-19. Retrieved 2018-07-20.
  • ^ "ZooKeeper at Twitter". Twitter Engineering Blog. 2018-10-11. Retrieved 2018-12-08.
  • ^ "SolrCloud".
  • ^ "Apache Pinot: Architecture".
  • ^ Burrows, Mike (2006). "The Chubby lock service for loosely-coupled distributed systems". 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI).
  • ^ Chandra, Tushar Deepak; Griesemer, Robert; Redstone, Joshua (2007). "Paxos Made Live - An Engineering Perspective (2006 Invited Talk)". Google Research. Retrieved 2020-03-03.
  • ^ "Zookeeper".
  • [edit]
    Retrieved from "https://en.wikipedia.org/w/index.php?title=Apache_ZooKeeper&oldid=1181681735"

    Categories: 
    Apache Software Foundation projects
    Configuration management
    Free software programmed in Java (programming language)
    Hadoop
    Hidden categories: 
    All articles with dead external links
    Articles with dead external links from October 2019
    Articles with permanently dead external links
    Articles with short description
    Short description matches Wikidata
     



    This page was last edited on 24 October 2023, at 15:45 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki