© DrHitch/Shutterstock.com
Big Data

2 Hadoop MapReduce in Kombination mit Cassandra


Parallelisierte Datenanalyse im Computercluster

Mit dem Framework und Programmiermodell MapReduce können riesige Datenmengen robust und schnell in einem Computercluster verarbeitet werden. In diesem Text wird MapReduce anhand eines Beispiels vorgestellt. Hadoop MapReduce arbeitet standardmäßig auf dem verteilten Dateisystem HDFS. Alternativ wird die NoSQL-Datenbank Cassandra verwendet, um von den Stärken beider Technologien zu profitieren.

MapReduce [1] ist ein von Google entwickeltes Framework und Programmiermodell zur Verarbeitung großer Datenmengen in Computerclustern. Mit ihm können petabytegroße Datenmengen zuverlässig mit Commodity-Hardware verarbeitet werden. Eine Arbeitseinheit wird als „MapReduce Job“ bezeichnet. Ein solcher Job könnte beispielsweise Texte für Suchanfragen indizieren oder Statistiken auf Basis von Server-Log-Dateien erstellen. Dazu werden die riesigen Datenmengen in kleinere Einheiten aufgeteilt und von unterschiedlichen Servern verarbeitet. So besteht ein einzelner Job aus vielen kleinen Tasks, die benutzerdefinierte Funktionen ausführen, um die gewünschte Analyse Stück für Stück durchzuführen.

Apache Hadoop [2] bietet eine Java-basierte Implementierung von MapReduce, dessen Funktionsweise im Mittelpunkt dieses Abschnitts steht. Doch Apache Hadoop ist mehr als nur MapReduce. Zu den Subprojekten gehören zum Beispiel das verteilte Dateisystem HDFS (Hadoop Distributed File System), die NoSQL-Datenbank HBase, die Datawarehouse-Infrastruktur Hive und die Datenverarbeitungsplattform Pig. Beim Entwurf von Hadoop wurden folgende Ideen, Anforderungen und Probleme berücksichtigt:

  • Die Datenmenge wächst unaufhörlich: Lineare Skalierbarkeit ist eine der wichtigsten Eigenschaften von MapReduce. Verdoppelt sich die Menge der zu verarbeitenden Daten, kann die Verarbeitungszeit prinzipiell konstant gehalten werden, indem die Anzahl der Knoten im Computercluster verdoppelt wird.
  • Verteilung von Daten: Die Kapazitäten, Transferraten und Zugriffszeiten von Festplatten wuchsen in den vergangen Jahrzehnten in ungleichen Verhältnissen. Deswegen benötigt man heute mehr Zeit zum Lesen des gesamten Festplatteninhalts als vor 20 Jahren [3]. Die Lesezeit kann durch Parallelisierung verringert werden. Das heißt, verteilt man beispielsweise die Daten einer Festplatte auf 100 Festplatten, dann müssen diese nur jeweils einen Prozent der Daten lesen.
  • Kolokation von Daten und Berechnung: Damit die Netzwerkbandbreite nicht zum Flaschenhals wird, versucht MapReduc...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang