Definition Was ist Hadoop?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Bei Hadoop handelt es sich um ein auf Java basierendes Software Framework. Mit ihm lassen sich große Datenmengen auf verteilten Systemen in hoher Geschwindigkeit verarbeiten. Es ist zur Bewältigung der Datenverarbeitung im Big-Data-Umfeld geeignet.

Anbieter zum Thema

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

Das Software Framework Hadoop ist eine Art Ökosystem, das auf verschiedenen Architekturen und unterschiedlicher Hardware betrieben werden kann. Es ist in der Programmiersprache Java geschrieben und als Quellcode von Apache frei verfügbar. Erfinder von Hadoop ist Doug Cutting, der mit der Veröffentlichung des MapReduce-Algorithmus durch Google im Jahr 2003 dessen Bedeutung erkannte und die Entwicklung von Hadoop begann. Seit 2008 ist Hadoop ein Top-Level-Projekt der Apache Software Foundation. Der Name Hadoop geht zurück auf einen kleinen Spielzeugelefanten des Sohns von Doug Cutting. Noch heute ist der Elefant im Logo von Hadoop vorhanden.

Das Software Framework ist für verteilt arbeitende, skalierbare Systeme vorgesehen. Zentraler Bestandteil ist unter anderem der MapReduce-Algorithmus von Google. Es lassen sich mit Hadoop intensive Rechenprozesse mit riesigen Datenmengen, wie sie im Big-Data-Umfeld auftreten, auf einer Vielzahl zu einem Cluster zusammengefasster Computer ausführen.

Die einzelnen Bestandteile von Hadoop

Hadoop besteht aus einzelnen Komponenten. Die vier zentralen Bausteine des Software-Frameworks sind:

  • Hadoop Common,
  • das Hadoop Distributed File System (HDFS),
  • der MapReduce-Algorithmus sowie
  • der Yet Another Resource Negotiator (YARN).

Hadoop Common stellt die Grundfunktionen und Tools für die weiteren Bausteine der Software zur Verfügung. Dazu gehören beispielsweise die Java-Archiv-Files und -Scripts für den Start der Software. Die Kommunikation zwischen Hadoop Common und den anderen Komponenten erfolgt über Schnittstellen. Über diese lassen sich die Zugriffe auf darunterliegende Dateisysteme oder die Kommunikation innerhalb von Clustern steuern.

Beim Hadoop Distributed File System (HDFS) handelt es sich um ein verteiltes Dateisystem, mit dem sich Daten auf verschiedenen Systemen in einem Rechnerverbund speichern lassen. Dadurch wird die Vorhaltung von großen Datenmengen möglich. Nach Angaben von Apache ist HDFS in der Lage, mehrere 100 Millionen Daten zu verwalten. Mit zum Dateisystem gehören Mechanismen zur Duplizierung von Daten für den Fall eines Ausfalls einzelner Rechner.

Die zentrale Engine von Hadoop bildet der MapReduce-Algorithmus, der in seinen Grundzügen von Google entwickelt wurde. Der Algorithmus stellt verschiedene Funktionen zur Verfügung, die es erlauben, komplexe und rechenintensive Aufgaben in viele kleine Einzelteile auf mehrere Rechner aufzuspalten. Durch die parallele Abarbeitung der Teilaufgaben ergibt sich eine hohe Rechengeschwindigkeit. Die Teilergebnisse führt der MapReduce-Algorithmus am Ende zu einem Gesamtergebnis zusammen.

Der Yet Another Resource Negotiator (YARN) stellt eine Art Ergänzung des MapReduce-Algorithmus dar. Er kann die Ressourcen in einem Rechnerverband managen und Ressourcen eines Clusters dynamisch verschiedenen Jobs zuordnen. Über Queues legt YARN die Kapazitäten der Systeme für die einzelnen Aufgaben fest.

Die Funktionsweise von Hadoop

Die zentralen Funktionen von Hadoop übernehmen das Filesystem HDFS und der MapReduce-Algorithmus. HDFS sorgt dafür, dass die Daten auf die einzelnen Systeme im Rechnerverbund verteilt werden.

MapReduce spaltet die Verarbeitung der Daten in Einzelaufgaben, die sich auf den Systemen parallel ausführen lassen, auf und fügt deren Resultate zu einem Gesamtergebnis zusammen. Innerhalb eines Hadoop-Clusters nimmt ein Rechnerknoten die Rolle des Masters an, die anderen arbeiten im Slave-Mode. Der Master ist für die Verwaltung der Metadaten des Filesystems verantwortlich. Auf den Slaves erfolgt die eigentliche Ablage der Daten. Der Master sorgt dafür, dass die Datenblöcke repliziert und auf mehreren Knoten gleichzeitig vorhanden sind. Er kennt die Ablageorte der Datenblöcke und kann Datenverlust aufgrund eines Rechnerausfalls im Verbund durch die Replizierung verhindern. Meldet sich ein Knoten über eine längere Zeit nicht mehr beim Master, erfolgt der Zugriff auf die replizierten Daten. Gleichzeitig kümmert sich der Master darum, dass neue Kopien der Daten erzeugt und gespeichert werden. Um für den Ausfall des Masters gerüstet zu sein, ist eine Art Secondary Master vorhanden, auf dem alle Veränderungen der Metadaten gesichert und wiederherstellbar sind.

Business Intelligence – ein typisches Anwendungsgebiet

Die Fähigkeit von Hadoop, große, auch inhomogene Datenmengen in hoher Geschwindigkeit verarbeiten zu können, macht das Framework ideal geeignet für den Einsatz im Business-Intelligence-Umfeld. Oft stammen die für die Business Intelligence Reports und Analysen herangezogenen Daten aus vielen verschiedenen Datenquellen und haben eine sehr unterschiedliche Struktur. Ein Hadoop-System ist in der Lage, die riesigen Datenmengen verteilt und in vielen kleinen Prozessschritten parallel zu verarbeiten. Es lassen sich komplexe Rechenaufgaben mit Daten im Petabyte-Bereich schnell und wirtschaftlich bewältigen. Die Ergebnisse der Big-Data-Verarbeitung durch Hadoop liefern Erkenntnisse, um beispielsweise die strategische Planung des Unternehmens neu auszurichten, die Entscheidungsfindung zu unterstützen, das Unternehmen effizient zu steuern oder das Berichtswesen zu vereinfachen.

(ID:44560607)