Verarbeiten großer verteilter Datenmengen mit Hadoop

Fazit

Anzeige

Neben Hadoop existieren weitere MapReduce-Implementierungen wie Quizmt, ein von MySpace auf .NET-Basis entwickeltes Framework unter der GPL-3-Lizenz. Einen hybriden Ansatz verfolgt die Greenplum Database, ein kommerzielles Produkt mit SQL- und MapReduce-Unterstützung. Phoenix verfolgt einen Shared-Memory-Ansatz, und mit Disco steht für Interessierte ein in Erlang geschriebenes Framework zu Verfügung.

Rund um Hadoop haben sich weitere Projekte gegründet, die wie Hadoop ursprünglich freie Implementierungen von Google-Frameworks darstellen oder eigene Ansätze verfolgen. Zur ersten Gruppe gehören das Chukwa-Projekt, das das Monitoring von großen verteilten Systemen ermöglicht, sowie Hive, das auf Hadoop aufbauend eine Datawarehouse-Lösung mit eigener Abfragesprache anbietet. Zur Gruppe der sich an Google ausrichtenden Projekte gehört HBase, eine BigTable-Implementierung für große verteile Datenbanken. Das Pig-Projekt erlaubt, MapReduce-Anwendungen in einer eigenen Abfragesprache zu schreiben, die es in MapReduce-Jobs übersetzt, sodass der Anwender sich auf die Datenanalyse konzentrieren kann.

Unter dem Dach des Lucene-Projekts ist Mahout beheimatet, das auf Basis von Hadoop ein Framework für maschinelles Lernen bereitstellt. Viele der Projekte treiben maßgeblich Yahoo-Mitarbeiter als Open-Source-Projekte voran, da die Firma der größte Hadoop-Anwender ist. Zeitweise arbeitete auch Doug Cutting für Yahoo, bevor er zu Cloudera wechselte.

MapReduce wird oft fälschlicherweise direkt mit relationalen Datenbanksystemen verglichen und als ineffizienter Weg zur Datenverwaltung dargestellt. Die Kritik übersieht, dass MapReduce kein Datenbanksystem ist, sondern ein Programmiermodell, mit dem sich auch Daten auswerten lassen, das aber nicht darauf beschränkt ist. Mit Hadoop und MapReduce können allgemein ausgedrückt Aufgaben gelöst werden, deren Eingabedaten sich gut in Teilstücke partitionieren lassen, um anschließend als unabhängige Teilprobleme bearbeitet werden zu können, was der Aufteilung der Daten in einzelne Blöcke im HDFS entspricht. Beispiele hierfür sind das Durchsuchen von Textdateien oder ihre Formatkonvertierung.

Nicht geeignet ist Hadoop für Aufgaben, die als Ganzes durch Abhängigkeiten während der Verarbeitung nicht partitionierbar sind, etwa die einer Wettersimulation. Neben seinem parallelen Ansatz eignet sich Hadoop durch seine flexible Architektur gut zur Verarbeitung von unstrukturierten Daten, für die es kein Schema gibt, deren Aufbereitung und Import in eine Datenbank oder in ein anderes System nicht im Verhältnis zur Häufigkeit ihres Zugriff stehen oder die nur im Rohformat vorliegen, da sie wiederholt, aber immer unter einer anderen Fragestellung verarbeitet werden. Das übersehen Kritiker oft, wenn sie MapReduce in einen direkten Vergleich mit relationalen Datenbanksystemen setzen. Wie so oft gilt, dass Aufgabe und Lösung zueinander passen müssen.

Erste Erfahrungen und die breite Anwendung von Hadoop haben den positiven Eindruck eines Frameworks hinterlassen, mit dem sich zuverlässig MapReduce-Anwendungen für den produktiven Einsatz entwickeln lassen. Wer nach einem alternativen Ansatz für die Massendatenverarbeitung sucht, sollte sich mit Hadoop näher beschäftigen.

Ein zweiter Artikel wird einen praktischen Einblick in die Entwicklung von MapReduce-Anwendungen geben.

Oliver Fischer
arbeitet in Berlin und ist über www.swe-blog.net zu erreichen. Für wertvolle Kritik und Ergänzungen zum Artikel bedankt er sich bei Isabel Drost.

Anzeige