Definition

Was ist ZooKeeper?

| Autor / Redakteur: Stefan Luber / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

ZooKeeper ist ein Softwareprojekt der Apache Software Foundation. Mit ZooKeeper lassen sich Services in verteilten Systemen hochverfügbar, performant und redundant bereitstellen. Die Software kommt beispielsweise zur Organisation und Konfiguration von Hadoop-Services zum Einsatz.

ZooKeeper lässt sich mit „Zoowärter“ ins Deutsche übersetzen. Dieser Begriff leitet sich aus der Aufgabe von ZooKeeper ab, einen „Zoo“ aus verschiedenen Servern und Serverinstanzen zu verwalten, zu synchronisieren, zu konfigurieren und die Services für Clients mit hoher Verfügbarkeit redundant bereitzustellen. Es handelt sich um ein Projekt der Apache Software Foundation. Die Server innerhalb einer von ZooKeeper gemanagten Umgebung tauschen sich untereinander aus und stellen sich ihre Services gegenseitig zur Verfügung. ZooKeeper sorgt dafür, dass sich die verschiedenen Knoten synchronisieren und keine Inkonsistenzen in den Daten auftreten.

Ursprünglich wurde ZooKeeper von Yahoo entwickelt, um eigene Services im Big-Data-Umfeld hochverfügbar bereitzustellen. Bei Apache war ZooKeeper zunächst ein Unterprojekt von Hadoop. Mittlerweile ist es aber ein eigenständiges Top-Level-Projekt von Apache. ZooKeeper hat sich zu einer Art Standard für die Organisation von verteilten Services entwickelt und wird von HBase, Hadoop und anderen Frameworks dieser Art verwendet. Die Software ist Open Source. Unternehmen wie Yahoo, Reddit, Facebook, Twitter oder eBay und viele Weitere setzen sie für eigene Anwendungen ein.

Aufgaben und Services von ZooKeeper

Aufgabe von ZooKeeper ist es, in verteilten Systemen die verschiedenen Server und Serverinstanzen zu koordinieren, verteilte Daten zu managen und robuste Synchronisationstechniken bereitzustellen. Zu den von ZooKeeper zur Verfügung gestellten Services zählen:

  • Namensservice, um Knoten in einem Cluster anhand ihrer Namen zu erkennen und anzusprechen
  • Cluster-Management für das Hinzufügen oder Entfernen von einzelnen Knoten in einem Cluster
  • Verfahren für die Ernennung eines Master-Knotens
  • Synchronisationsservice für das Speichern und Verändern von verteilten Daten
  • Redundanzservice für die Hochverfügbarkeit der Daten und Services trotz Ausfall einzelner Knoten
  • Informationsservice zur Bereitstellung von Statusinformationen der Knoten in Echtzeit
  • Konfigurationsservice zur Bereitstellung von Konfigurationsdaten der Knoten in Echtzeit

Die Services stellen beispielsweise sicher, dass die Konsistenz der Daten erhalten bleibt, wenn in verteilten Systemen verschiedene Server Daten zur gleichen Zeit verändern möchten.

Funktionsweise und Architektur von ZooKeeper

Eine verteilte Anwendung führt verschiedene Tasks auf mehreren über ein Netzwerk verbundenen Systemen aus. Diese Task gilt es zu koordinieren, um sie schnell und effizient zu erledigen. Komplexe Aufgaben, die auf einzelnen Rechnern lange Ausführungszeiten benötigen, lassen sich in verteilten Umgebungen durch Parallelisierung einzelner Tasks und durch Ausnutzung der durch die vielen Maschinen bereitgestellten Ressourcen sehr viel schneller abarbeiten. Eine Gruppe von Rechnern oder Servern, die eine verteilte Anwendung ausführen, nennt sich Cluster. Die einzelnen Maschinen des Clusters werden auch Knoten genannt. Auf die verteilte Anwendung greifen die Clients über Schnittstellen zu.

ZooKeeper stellt sich nach außen als ein einziger Service dar. Er bildet intern jedoch einen Cluster aus mehreren Knoten und Serverinstanzen. Es entsteht ein sogenanntes ZooKeeper Ensemble, das sich selbst organisiert. Hierfür wählen die Knoten einen Master-Knoten (Leader Node), der die führende Rolle zur Synchronisation und Sicherstellung der Konsistenz der Daten übernimmt. Unter anderem empfängt er alle Schreibzugriffe und bestimmt die Reihenfolge der auf den verschiedenen Knoten durchzuführenden Änderungen. Die Knoten sind sogenannte Follower und bestimmen beim Ausfall des Master-Knotens innerhalb kürzester Zeit einen neuen Leader. ZooKeeper selbst agiert wie ein verteiltes Dateisystem. Sämtliche Informationen werden ähnlich wie in einem Dateisystem organisiert. Von einem Wurzelverzeichnis ausgehend sind die ZooKeeper-Nodes hierarchisch angeordnet. Entlang dieses Dateibaums organisieren sich alle Aufgaben.

Vorteile durch den Einsatz von ZooKeeper

ZooKeeper stellt umfassende Services bereit, um die Herausforderungen einer verteilt arbeitenden Anwendung zu meistern. Inkonsistenzen der Daten werden zuverlässig vermieden und die Anwendung mit hoher Verfügbarkeit betrieben. Die wichtigsten Vorteile von ZooKeeper sind:

  • einfache, transparente Koordinationsprozesse für die verteilten Anwendungen und Services
  • Serialisierung von auszuführenden Tasks und Sicherstellung der Datenkonsistenz
  • Steigerung der Verfügbarkeit des Gesamtsystems
  • automatische Failover-Mechanismen beim Ausfall einzelner Systeme
  • einfache und leicht nachvollziehbare hierarchische Struktur ähnlich einem Dateiverzeichnis
  • Steigerung der Performance der verteilten Anwendung
  • einfache Skalierung der Performance und Verfügbarkeit durch das Hinzufügen weiterer Knoten
  • Darstellung nach außen als ein einziger für Clients ansprechbarer Service

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Confluent Operator veröffentlicht

Cloud-native Kafka-Plattform

Confluent Operator veröffentlicht

Im Rahmen des Confluent Platform Releases 5.3 GA ist der Confluent Operator nun für Produktivumgebungen verfügbar. Dabei handelt es sich um einen Apache-Kafka-Operator für Kubernetes, der automatisierte Cluster-Bereitstellung ermöglicht. lesen

Mit Apache Metron Big-Data-Projekte schützen

Open-Source-Security-Lösung Apache Metron

Mit Apache Metron Big-Data-Projekte schützen

Big-Data-Projekte sind nicht nur für Firmen interessant, sondern auch für Cyberkriminelle. Apache Metron ist ein Open-Source-Projekt für ein Security-Analytics-Framework. Die Lösung besteht aus Modulen zum Parsen, Normalisie­ren und Anreichern von Daten mit internen und externen Bedrohungsinformationen und soll Big-Data-Projekte vor unbefugtem Zugriff schützen. lesen

IoT-Basics – die technische Basis von Big Data

Data Science

IoT-Basics – die technische Basis von Big Data

Big Data beinhaltet eine Reihe von IT-Techniken wie Cluster Computing und MapReduce sowie mathematisch-statistischer Verfahren (Data Mining, Machine Learning). Der Beitrag gibt einen Überblick über die relevanten Datenbankenkonzepte (Hadoop- und NoSQL-Datenbanken) und Programmiersprachen. lesen

So analysieren Sie große Datenmengen mit Apache Storm

Big Data in Echtzeit verarbeiten

So analysieren Sie große Datenmengen mit Apache Storm

Mit Apache Storm lassen sich Daten in Big-Data-Systemen in Echtzeit verarbeiten. Das Tool arbeitet mit verschiedenen Datenquellen zusammen und fügt sich optimal in Hadoop-Umgebungen ein. lesen

So nutzen Sie Apache Fluo mit Accumulo

Inkrementelles Verarbeiten wie im Google-Suchindex

So nutzen Sie Apache Fluo mit Accumulo

Mit Apache Fluo nutzen Anwendungen Daten, die mit der NoSQL-(Key/Value)-Datenbank Accumulo gespeichert wurden. In Zusammenarbeit mit Hadoop und Zookeeper stellt Fluo/Accumulo eine wertvolle Hilfe dar, um Daten schneller zu verarbeiten. lesen

So funktionieren Datenanalysen mit Apache Spark

Big Data und Microsoft Azure

So funktionieren Datenanalysen mit Apache Spark

Microsoft bietet mit seinem Cloud-Dienst Azure eine ideale Plattform für zahlreiche Cloud-Dienste. Interessant wird Azure etwa in Kombination mit der Open-Source-Lösung Apache Spark, mit der Unternehmen interaktive Analysen mit In-Memory-Technik durchführen können. lesen

„Das Hadoop-Ökosystem wird weiter wachsen“

Interview mit dem Hadoop-Schöpfer D. Cutting

„Das Hadoop-Ökosystem wird weiter wachsen“

Hadoop, das fast schon synonym für Big Data genannte Framework zum Verarbeiten großer Datenmangen, feiert in diesem Jahr seinen zehnten Geburtstag. BigData-Insider blickt gemeinsam mit dem Hadoop-Erfinder Doug Cutting auf die vergangenen zehn Jahre zurück und befragt ihn nach seiner Einschätzung zur Zukunft von Big Data und Hadoop. lesen

Apache Storm erreicht Version 1.0

Bis zu 16-mal schneller

Apache Storm erreicht Version 1.0

Storm, das Apache-Projekt zur Echtzeitverarbeitung von Streaming-Daten, hat die symbolträchtige Version 1.0 erreicht. Die jüngste Version eines der ersten Hadoop-unabhängigen Big-Data-Frameworks, das auf YARN portiert wurde, verspricht neben vielen Neuerungen auch eine diesem Release-Stand angemessene Stabilität. lesen

Neuerung bei der Distribution von Apache Hadoop

Strategiewechsel bei Hortonworks

Neuerung bei der Distribution von Apache Hadoop

Hortonworks hat anlässlich der Freigabe der neuen Version von HDP 2.4 einen Strategiewechsel bei künftigen Weiterentwicklungen von Hortonworks Data Platform (HDP) und Hortonworks DataFlow (HDF) bekannt gegeben. Beide bilden einiger Zeit die „Connected Data Platform“. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45808826 / Definitionen)