Hadoop

Was ist Hadoop?

Das Java-basierte Framework Hadoop wird im Wesentlichen zum Umgang mit Big-Data eingesetzt. Große und unübersichtliche Datenmengen lassen sich mit Hadoop auf verteilten Systemen verarbeiten. In den zunehmend relevanten Themen rund um die Business-Intelligence ist ein Framework wie Hadoop von besonderer Bedeutung, da es auf die Datenverarbeitung in hoher Geschwindigkeit ausgelegt ist. Hadoop ist als Apache-Quellcode frei verfügbar. Das Framework fungiert als vielseitig anwendbares Ökosystem, das sich auf diversen Architekturen auf unterschiedlicher Hardware betreiben lässt.

Geschichte und Entwicklung

Die Entwicklung des Frameworks Hadoop beginnt im späten Jahr 2004. Unternehmen wie Google oder Yahoo, sahen sich zunehmend mit der Anforderung konfrontiert, besonders große und immer weiter wachsende Datenmengen (Big Data) zu managen. In diesem Zusammenhang sind Entwicklungen wie das GFS (Google File System) und der Map-Reduce-Algorithmus relevant. Diese beiden Bestandteile bilden die wichtigsten Eckpfeiler der IT-Infrastruktur des Suchmaschinen-Betreibers. Google veröffentlichte 2004 genauere Informationen rund um seinen Algorithmus MapReduce. Dieser eignet sich zum Umgang mit aufwändigen Computing Aufgaben. Mit Hilfe des Map-Reduce-Algorithmus lassen sich diese Aufgaben zerlegen und im Rahmen von Server-Clustern parallelisieren. In diesem Zusammenhang fiel dem Entwickler und Suchmaschinen-Experten Doug Cutting das Anwendungspotential dieser Entwicklung auf. Auf dieser Basis rief Cutting Hadoop ins Leben. Der bis dato unter anderem für Apple, Excite und Yahoo arbeitende Cutting trieb gemeinsam mit Yahoo die Entwicklung von Hadoop voran. So fand das Framework schnell Anwendung in den Systemen von Yahoo. Seit September 2010 ist Doug Cutting zudem Chairman der Apache Software Foundation (ASF). Unter der ASF finden weitere Entwicklungen im Hadoop-Umfeld statt.

Hadoop gilt seit Anfang des Jahres 2008 als Top-Level-Projekt der Apache Software Foundation. Gegenwärtige Nutzer des Frameworks sind neben Yahoo unter anderem IBM, Facebook und ImageShack. Der Name der Software ist auf ein Spielzeug des Sohnes von Erfinder Doug Cutting zurückzuführen. Der kleine gelbe Elefant ziert bis heute das Hadoop-Logo.

Komponenten und Bestandteile

Hadoop ist als Software-Framework für verteilte Systeme gedacht. Das plattformunabhängige, Java-basierte Framework ist aus mehreren Einzelkomponenten aufgebaut. Hierbei bildet Googles MapReduce-Algorithmus den wesentlichen Kernbestandteil. Die Komponenten dienen dazu, aufwändige, intensive Computing-Prozesse mit enormen Datenmengen zu verarbeiten. Die meist aus dem Big-Data-Umfeld stammenden Daten werden auf einer großen Zahl von Computern ausgeführt, die zu Clustern zusammengefasst sind.

Unter den Einzelkomponenten finden sich vier wesentliche Bestandteile der Software:

  • Hadoop Common
  • HDFS (Hadoop Distributed File System)
  • Google MapReduce-Algorithmus
  • YARN (Yet Another Resource Negotiator

Mit Hadoop Common findet sich der Bestandteil, der die Kernfunktionen und Werkzeuge der anderen Bestandteile und Erweiterungen der Software beinhaltet. Hadoop Common steht den anderen Komponenten die Grundfunktionen zur Verfügung. Zu diesen zählen etwa die für den Start der Software erforderlichen Java Archive Files und Java Scripts. Verschiedene Schnittstellen ermöglichen die Kommunikation zwischen den anderen Bestandteilen des Frameworks und Hadoop Common. Die Schnittstellen ermöglichen die Kontrolle und Steuerung der Zugriffe auf verschiedene Dateisysteme. Ebenso lässt sich die Kommunikation innerhalb von Clustern über die Schnittstellen steuern.

Mit dem Hadoop Distributed File System (HDFS) bietet die Software ein verteiltes Dateisystem. Dieses ermöglicht die Speicherung von Daten auf unterschiedlichen Systemen in einem Verbund aus Rechnern. Diese Vorgehensweise erlaubt es, besonders große Datenmengen vorzuhalten. Die Apache Software Foundation gibt an, dass das Distributed File System dazu imstande ist, mehrere 100 Millionen Daten zu managen. Das verteilte Dateisystem beinhaltet weiterhin Verfahren, die vorhandenen Daten zu duplizieren. Dies wirkt dem Datenverlust im Falle eines Ausfalls einzelner Rechner entgegen.

Der in seinen Kernbestandteilen von Google entwickelte MapReduce-Algorithmus stellt den zentralen Baustein des Software-Frameworks dar. Die zahlreichen Funktionen dieses Algorithmus sind auf die Aufteilung aufwändiger und ressourcenintensiver Aufgaben ausgelegt. Mit Hilfe des Algorithmus zerlegt das Framework die Aufgaben in eine Vielzahl kleinerer Einzelteile. Diese werden auf mehrere Rechner aufgeteilt. Die Teilaufgaben können parallel abgearbeitet werden. Dies erlaubt eine höhere Rechengeschwindigkeit. Die hierbei entstehenden Teilergebnisse werden im Anschluss ebenso vom MapReduce-Algorithmus zu einem vollständigen Ergebnis zusammengefasst.

In Ergänzung zu diesem Algorithmus arbeitet der Yet Another Resource Negotiator (YARN). Dieser ist imstande, die Ressourcen innerhalb eines Rechnerverbands zu verwalten. Die Ressourcen eines Clusters werden dabei auf dynamische Weise unterschiedlichen Jobs zugeordnet. YARN übernimmt die Festlegung der Kapazitäten der Systeme über Queues (Warteschlangen zur Zwischenspeicherung von Objekten in einer bestimmten Reihenfolge).

Projekte rund um Hadoop

Die Funktionalität Hadoops wird durch eine Reihe von Projekten rund um das Software-Framework erweitert. Diese Projekte auf Apache-Basis bieten zusätzliche Funktionen, die fortwährend weiterentwickelt werden. Du diesen Projekten gehört etwa die verteilte NoSQL-Datenbank Cassandra. Cassandra weist ein hohes Maß an Skalierbarkeit auf und bietet eine hohe Verfügbarkeit. Das einfache verteilte Verwaltungssystem ist auf große strukturierte Datenbanken ausgelegt. Die Ablage der Daten erfolgt in Schlüssel-Wert-Relationen. Die Verbreitung erfolgt als freie Software unter der Apache-Lizenz (Version 2). Die ursprünglich von Facebook entwickelte Software wurde im weiteren Verlauf an die Apache Software Foundation weitergegeben.

Das Framework Avro ist ebenfalls als Teil Hadoops entwickelt wurden und stellt ein Remote-Procedure-Call-Framework dar. Avro definiert Protokolle und Datentypen und nutzt hierzu JSON (JavaScript Object Notation, ein kompaktes Datenformat zum Austausch zwischen Anwendungen)

Die verteilte Datenbank HBase ist hochskalierbar und daher auf das Handling größerer und umfangreicher Tabellen ausgelegt. In diesen Tabellen lassen sich mit HBase auch größere Mengen strukturierter Daten verwalten.

Das Date-Warehouse Hive ermöglicht verschiedene Abfragen sowie Analysen. Diese werden über HiveQL, eine SQL-artige Syntax, durchgeführt.

Das Open-Source-basierte Datensammlungssystem Chukwa ermöglicht das Sammeln von Daten. Ebenso bietet Chukwa die Möglichkeit des Monitorings großer, verteilter Systeme. Apache Mahout ist eine Anwendung, die ihren Nutzern Algorithmen für das Data-Mining liefert. Auch unstrukturierte Daten in großen Datenbanken lassen sich mit Mahout auswerten.

Funktionsweise

Die Funktionsweise des Software-Frameworks basiert im Wesentlichen auf den Bestandteilen HDFS und dem MapReduce-Algorithmus.

Dieser zerlegt die vielfältigen Daten in kleinere Einzelaufgaben. Sie lassen sich parallel ausführen und ihre Einzel-Resultate werden zu einem Gesamtergebnis zusammengeführt. Im Rahmen eines Clusters von Hadoop übernimmt einer der Rechnerknoten die Master-Rolle, während alle anderen im Slave-Modus arbeiten. Hierbei übernimmt der Master die Metadaten-Verwaltung im Dateisystem. Abgelegt werden die Daten auf den Slaves. Eine Aufgabe des Masters ist es, die Datenblöcke zu replizieren und dafür zu sorgen, dass sie auf mehreren Knoten zugleich vorhanden sind. Der Master kennt die genauen Orte der Ablage der Datenblöcke. Dank der Replikation kann der Master einen möglichen Datenverlust in Folge eines Ausfalls eines der Rechner verhindern. Bleibt die Kommunikation eines der Slave-Knoten mit dem Master für längere Zeit aus, so greift der Master auf replizierte Daten zu.

Der Master sorgt weiterhin dafür, dass stets neue Datenkopien erstellt und abgespeichert werden. Für den Fall eines Ausfalls des Masters ist gleichermaßen eine Art zweiter Master vorhanden. Auf diesem sind sämtliche Metadaten und ihre Modifikationen gesichert und können wiederhergestellt werden.

Anwendungsgebiete: Big-Data und Business-Intelligence

Der idealtypische Einsatzzweck des Software-Frameworks findet sich in Business-Intelligence-Anwendungen, die auf große, zunächst uneinheitliche Datenmengen angewiesen sind. Seine Befähigung, auch enorme und heterogene Daten schnell und zuverlässig managen zu können, lässt Hadoop für viele BI-Anwendungen zum Mittel der Wahl werden. Die für Business-Intelligence-Zwecke benötigten Analysen und Reports basieren oftmals auf uneinheitlichen Datenquellen. Daher sind die Daten unübersichtlich und unstrukturiert. Sie bedürfen eines Systems wie Hadoop, das imstande ist, die großen Datenmengen verteilt zu verarbeiten und in mehrere kleinere Prozessschritte zu zerlegen.

Auch anspruchsvollere Rechenoperationen mit Datenmengen im Terabyte- oder sogar Petabyte-Bereich sind zeitnah und ressourcenschonend zu verarbeiten. Business-Intelligence-Anwendungen nutzen die Ergebnisse der Verarbeitung von Big Data etwa zur Unterstützung des operativen Geschäfts. Auch die strategische Entscheidungsfindung oder die langfristige Planung der Unternehmensprozesse können von Big-Data-Verarbeitung profitieren.

Big-Data-basierte Lösungsansätze wie Hadoop stellen in diesem Zusammenhang eine Ergänzung der BI-Lösungen dar. Anders als die reine BI, ist Hadoop nicht auf bereits perfekt aufeinander abgestimmte Daten angewiesen. Effiziente Beiträge zur Berichterstattung oder Analyse sind auch auf Basis unstrukturierter Daten aus verschiedenen Quellen möglich. Im Anwendungsbereich des Online-Marketings lässt sich das Zusammenspiel von BI und Big-Data veranschaulichen. Während ein durchdachtes BI-System etwa präzise darstellen kann, welche Ware zu welchem Anteil mit welcher Gewinnmarge verkauft wurde, können Big-Data-Softwarekonzepte erfassen, welcher Zielgruppe die Ware besonders zusagt und in welchem Zusammenhang sie mit anderen Waren steht.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte