Definition

Was ist MapReduce?

| Autor / Redakteur: Stefan Luber / Nico Litzel

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

Bei MapReduce handelt es sich um ein von Google entwickeltes Verfahren, mit dem sich große strukturierte oder unstrukturierte Datenmengen mit hoher Geschwindigkeit verarbeiten lassen. MapReduce nutzt die Parallelisierung von Aufgaben und deren Verteilung auf mehrere Systeme.

Ursprüngliche wurde das MapReduce-Verfahren 2004 von Google für die Indexierung von Webseiten entwickelt. MapReduce ist patentiert und kann als Framework für Datenbanken verwendet werden. Das Framework eignet sich sehr gut für die Verarbeitung von großen Datenmengen (bis zu mehreren Petabytes), wie sie im Big-Data-Umfeld auftreten.

Die Daten können sowohl strukturiert als auch unstrukturiert sein. Da bei großen Datenmengen einzelne Prozesse oder Rechner schnell an ihre Grenzen stoßen, parallelisiert MapReduce die Bearbeitung durch die Verteilung auf mehrere gleichzeitig auszuführende Tasks. Das MapReduce-Framework sorgt für die Verteilung der Aufgaben auf unterschiedliche Rechner oder Cluster und aggregiert anschließend die Ergebnisse. Das Verfahren arbeitet fehlertolerant und kann Aufgaben bei Problemen mit einzelnen Rechnern neu verteilen. Programmierer, die MapReduce anwenden, müssen sich nicht um die Fehlerbehandlung, die Aufgabenüberwachung oder die Cluster-Kommunikation kümmern.

MapReduce wird häufig im Big-Data-Umfeld für beispielsweise Finanzanalysen, wissenschaftliche Simulationen oder das Data Mining verwendet. Es existiert eine ganze Reihe von Implementierungen des MapReduce-Verfahrens in Programmiersprachen wie Java, C++, Perl, Python oder Ruby.

Die beiden Grundfunktionen Map und Reduce

Die Grundfunktionen des MapReduce-Ansatzes bilden die beiden Funktionen Map und Reduce. Sie sorgen für die Zerlegung der Aufgaben in kleine parallelisierte Arbeitspakete und führen die Ergebnisse anschließend zusammen. Damit lassen sich die typischen Probleme, die klassische relationale Datenbanken mit der Verarbeitung von großen unstrukturierten Datenmengen haben, beseitigen.

Map stellt die Funktion dar, die die Aufgaben an die unterschiedlichen Knoten eines Clusters verteilt. Die Reduce-Funktion sortiert die berechneten Ergebnisse und fügt sie wieder zusammen.

Beispiele für MapReduce im Big-Data-Umfeld

MapReduce ist weit verbreitet und kommt immer dann zum Einsatz, wenn große Datenmengen möglichst schnell zu verarbeiten sind. Es existiert eine Vielzahl von Beispielen für die Verwendung von MapReduce. Google nutzte das Verfahren sehr lange für die Indexierung der Webseiten bei der Google-Suche, ist aber inzwischen auf noch leistungsfähigere Algorithmen umgestiegen. Auch im Google-News-Umfeld kam MapReduce zum Einsatz. Ein weiterer Suchmaschinenanbieter der MapReduce für den Index-Aufbau nutzt ist Yahoo. Viele E-Mail-Provider setzen MapReduce bei der Spam-Erkennung von E-Mails ein.

Ebenfalls Anwender von MapReduce ist Facebook. Bereiche in denen Facebook das Verfahren nutzt, sind zum Beispiel das Data Mining, die Optimierung von Ads oder die Spam-Erkennung. Amazon verwendet MapReduce-Verfahren unter anderem für das Clustering von Produkten.

Die Vor- und Nachteile von MapReduce

Gegenüber den klassischen Verfahren der Datenverarbeitung, wie sie in relationalen Datenbanken zum Einsatz kommen, bietet MapReduce eine ganze Reihe an Vorteilen. MapReduce lässt sich auf normalen Rechnern mit handelsüblicher Software ausführen und benötigt keine Highend-Server. Ein Cluster-Verbund für die parallele Datenverarbeitung kann bei Bedarf ohne spezielle Server realisiert werden. Dadurch ist MapReduce kostengünstig nutzbar. Gleichzeitig skaliert das Verfahren sehr gut, da sich die Aufgaben auf beliebig viele Knoten verteilen lassen.

Durch die parallelisierte Verarbeitung ist MapReduce sehr schnell und wesentlich performanter als die Datenverarbeitung in relationalen Datenbanken. Ein Nachteil kann durch die Vernetzung der einzelnen Knoten entstehen. Unter Umständen stellt das Netzwerk und seine Übertragungskapazität einen Flaschenhals für das komplette System dar.

Kurze Gegenüberstellung von MapReduce und relational arbeitenden Datenbanksystemen

Lange Zeit dominierten relationale Datenbanksysteme das Speichern und Verarbeiten von Daten. Sie sind geeignet für gezielte Abfragen und Veränderungen eines strukturierten und normalisierten Datenbestands. Ihre Skalierung ist nichtlinear und die Antwortzeiten für Abfragen steigen überproportional mit der Größe der Datenbank. Das MapReduce-Konzept verarbeitet Daten parallel als Streams und besitzt eine lineare Skalierung. Es eignet sich sehr gut für die Batch-Verarbeitung von großen unstrukturierten, semi-strukturierten und nicht-normalisierten Daten.

Hadoop als Implementierung des MapReduce-Konzepts

Für das MapReduce-Konzept existieren viele Implementierungen. Eine der erfolgreichsten und am weitesten verbreitete Implementierung ist Hadoop. Es handelt sich bei Hadoop um ein Software-Framework, das auf Java basiert und für die Bewältigung der Datenverarbeitung im Big-Data-Umfeld eingesetzt wird. Hadoop ist ein Top-Level-Projekt der Apache Software Foundation und der Quellcode ist frei verfügbar. Das Software-Framework ist für skalierbare, verteilt arbeitende Systeme vorgesehen und auf unterschiedlicher Hardware betreibbar.

Wesentliche Bestandteile von Hadoop sind neben dem MapReduce-Verfahren das Hadoop Distributed File System (HDFS) und der Yet Another Resource Negotiator (YARN). Bei HDFS handelt es sich um ein verteiltes Dateisystem für das Speichern von Daten in einem Rechnerverbund. Eine Ergänzung zum MapReduce-Verfahren bildet YARN. YARN kann die Ressourcen eines Rechnerverbunds managen und sie dynamisch den verschiedenen Jobs zuordnen. Die Kapazitäten der Systeme werden von YARN über Queues festgelegt.

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

Objekte für die Zettabyte-Ära

Womit sich Start-ups heute beschäftigen – MinIO

Objekte für die Zettabyte-Ära

MinIO ist nach Angaben des gleichnamigen Herstellers „ein hochleistungsfähiger, verteilter Objektspeicher-Server für datenintensive Anwendungen wie Deep und Machine Learning, Künstliche Intelligenz und Big Data“. Erstellt wurde das Open-Source-Programm (unter der Apache-Lizenz 2.0) mit der Programmiersprache Go. lesen

Vom Umgang mit großen Datenmassen

Buchrezension Big Data

Vom Umgang mit großen Datenmassen

Die durch die Digitalisierung und das Internet of Things entstehenden Datenmassen können mit konventionellen Mitteln relationaler Datenbanken nicht mehr bewältigt werden. Dazu braucht es andere Mittel und Methoden. Das Buch „Big Data“ beschreibt sie. lesen

TonY bietet native Unterstützung von TensorFlow auf Hadoop

Kommentar von Michael Deuchert, IT-Novum

TonY bietet native Unterstützung von TensorFlow auf Hadoop

Einerseits basieren viele Deep-Learning-Anwendungsfälle auf TensorFlow, dem populären Framework von Google. Andererseits bietet Hadoop riesige Rechen- und Speicherkapazitäten. Wie wäre es, wenn man beide Vorteile zu einer hoch skalierbaren Plattform für maschinelles Lernen verbinden würde? Genau das hat sich auch das Social Network LinkedIn gedacht und die Open Source-Lösung TonY entwickelt. TonY steht für „TensorFlow on YARN“. lesen

Stream Processing befindet sich im Aufwind

Einschätzung von Data Artisans

Stream Processing befindet sich im Aufwind

Der Spezialist für Echtzeit-Datenanwendungen Data Artisans sieht einen Trend zum verstärkten Einsatz von Stream Processing. Schon jetzt werden Geschäftsdaten wie Sensormessungen, Website-Klicks oder Datenbankänderungen häufig als kontinuierlicher Ereignisstrom erzeugt. lesen

Tibco aktualisiert BI-Flaggschiff Spotfire

Nachbericht Tibco Now 2018

Tibco aktualisiert BI-Flaggschiff Spotfire

Tibco Software, ein Spezialist für Daten- und Prozessintegration sowie von Big Data Analytics, hat auf seiner internationalen Anwenderkonferenz Tibco Now in Las Vegas zahlreiche Neuheiten für seine Flaggschiffprodukte präsentiert. Zudem vertieft der Pionier des Informationsbusses seine Kooperation mit Partnern wie AWS und treibt seine IoT-Angebote voran. lesen

Ein erster Blick auf Amazon QuickSight

Business Intelligence aus der Cloud

Ein erster Blick auf Amazon QuickSight

Self-Service BI ist schon seit Jahren der wichtigste Trend im Bereich Business Intelligence. Mitarbeiter in Fachbereichen erstellen Ad-hoc-Abfragen und analysieren Leistungsdaten. Mit QuickSight macht Amazon nun bekannten Cloud-Angeboten wie Qlik, Tableau, Microsoft PowerBI und SAP Lumira Konkurrenz. lesen

IoT-Basics – mit Big Data zur smarten Produktion

Data Science

IoT-Basics – mit Big Data zur smarten Produktion

Industrielle Internet-Systeme auf der Basis von Cloud-basierten IoT-Plattformen werden den Einsatz von Big Data in der Industrie deutlich voranbringen. Sie erschließen die bereits vorhandenen Datenquellen und führen sie einer effizienten zentralen Auswertung zu, was kompetentere Entscheidungen ermöglicht. 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 funktioniert verteiltes Lernen mit TensorFlow

Erste Schritte

So funktioniert verteiltes Lernen mit TensorFlow

Das quelloffene TensorFlow von Google gehört mittlerweile zu den angesagtesten Frameworks für die Programmierung Neuronaler Netze, Deep-Learning-Modelle sowie andere Machine-Learning-Algorithmen. Wie gelingt der Einstieg mit TensorFlow und was leistet die jüngste Version 1.5? lesen

copyright

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