Was ist MapReduce?
Das MapReduce-Programmierframework wird verwendet, um eine verteilte und parallele Verarbeitung mit großen Datenmengen in einer verteilten Umgebung durchzuführen. Karte und Verkleinern sind die beiden unterschiedlichen Aufgaben eines Kartenverkleinerungsprogramms. Zunächst werden in der Kartenphase die Daten gelesen und daraus Schlüssel-Wert-Paare generiert. Dann werden diese Schlüssel-Wert-Paare in eine Reduzierungsaufgabe eingespeist, die die Schlüssel-Wert-Paar-Daten zu dem kleineren Wertesatz aggregiert, der die endgültige Ausgabe erzeugt. Somit wird eine Reduzierungsaufgabe immer implementiert, nachdem eine Kartenaufgabe abgeschlossen wurde. Es ist sehr einfach, die Datenverarbeitung über mehrere Rechenknoten zu skalieren.
Das Programm besteht aus drei Phasen:
- Kartenbühne
- Bühne mischen
- Bühne verkleinern
Beispiel
Wordcount Problem-
Angenommen, unten sind die Eingabedaten:
- Mike Jon Jake
- Paul Paul Jake
- Mike Paul Jon
1. Die obigen Daten sind wie folgt in drei Eingabesplits unterteilt:
- Mike Jon Jake
- Paul Paul Jake
- Mike Paul Jon
2. Dann werden diese Daten in die nächste Phase eingespeist, die als Mapping-Phase bezeichnet wird.
Also, für die erste Zeile (Mike Jon Jake) haben wir 3 Schlüssel-Wert-Paare - Mike, 1; Jon, 1; Jake, 1.
Nachfolgend sehen Sie das Ergebnis in der Mapping-Phase:
- Mike, 1
Jon, 1
Jake, 1 - Paul, 1
Paul, 1
Jake, 1 - Mike, 1
Paul, 1
Jon, 1
3. Die obigen Daten werden dann in die nächste Phase eingespeist, die als Sortier- und Mischphase bezeichnet wird.
In dieser Phase werden die Daten in eindeutige Schlüssel gruppiert und sortiert. Nachfolgend sehen Sie das Ergebnis in der Sortier- und Mischphase:
- Jake, (1, 1)
- Jon, (1, 1)
- Mike, (1, 1)
- Paul, (1, 1, 1)
4. Die obigen Daten werden dann in die nächste Phase eingespeist, die als Reduktionsphase bezeichnet wird.
Hier werden alle Schlüsselwerte aggregiert und die Anzahl der Einsen gezählt. Nachfolgend sehen Sie das Ergebnis in der Reduktionsphase:
- Jake, 2
- Jon, 2
- Mike, 2
- Paul, 3
Vorteile von MapReduce:
Hier erfahren wir einige wichtige Vorteile von MapReduce Programming Framework.
1. Skalierbarkeit
Hadoop ist eine Plattform mit hoher Skalierbarkeit, die vor allem auf die Fähigkeit zurückzuführen ist, große Datenmengen auf vielen Servern zu speichern und zu verteilen. Die hier verwendeten Server sind recht günstig und können parallel betrieben werden. Die Rechenleistung des Systems kann durch Hinzufügen weiterer Server verbessert werden. Die traditionellen relationalen Datenbankverwaltungssysteme oder RDBMS waren nicht in der Lage, große Datenmengen zu verarbeiten.
2. Flexibilität
Das Hadoop MapReduce-Programmiermodell bietet Flexibilität bei der Verarbeitung von strukturierten oder unstrukturierten Daten durch verschiedene Unternehmensorganisationen, die die Daten nutzen und mit verschiedenen Datentypen arbeiten können. Auf diese Weise können sie einen Geschäftswert aus den Daten generieren, die für die Geschäftsorganisationen zur Analyse sinnvoll und nützlich sind. Unabhängig von der Datenquelle, ob es sich um Social Media, Clickstream, E-Mail usw. handelt. Hadoop bietet Unterstützung für viele Sprachen, die für die Datenverarbeitung verwendet werden. Gleichzeitig ermöglicht die Hadoop MapReduce-Programmierung viele Anwendungen wie Marketinganalysen, Empfehlungssysteme, Data Warehouse und Betrugserkennung.
3. Sicherheit und Authentifizierung
Wenn eine externe Person Zugriff auf alle Daten der Organisation erhält und mehrere Petabyte der Daten manipulieren kann, kann dies im Hinblick auf den Geschäftsverkehr mit der Unternehmensorganisation großen Schaden anrichten. Diesem Risiko begegnet das MapReduce-Programmiermodell durch die Zusammenarbeit mit hdfs und HBase, die eine hohe Sicherheit ermöglichen und es nur dem zugelassenen Benutzer ermöglichen, auf die im System gespeicherten Daten zuzugreifen.
4. Kostengünstige Lösung
Ein solches System ist hochgradig skalierbar und eine sehr kostengünstige Lösung für ein Geschäftsmodell, in dem Daten gespeichert werden müssen, die mit dem aktuellen Tagesbedarf exponentiell wachsen. Bei alten relationalen Datenbankverwaltungssystemen war die Datenverarbeitung hinsichtlich der Skalierbarkeit nicht so einfach wie beim Hadoop-System. In solchen Fällen war das Unternehmen gezwungen, die Daten zu verkleinern und die Klassifizierung basierend auf den Annahmen, wie bestimmte Daten für das Unternehmen wertvoll sein könnten, weiter zu implementieren und somit die Rohdaten zu entfernen. Hier hilft die Hadoop-Scaleout-Architektur mit MapReduce-Programmierung.
5. Schnell
Das verteilte Hadoop-Dateisystem HDFS ist eine Schlüsselfunktion von Hadoop, das im Grunde ein Zuordnungssystem implementiert, um Daten in einem Cluster zu lokalisieren. Die MapReduce-Programmierung wird für die Datenverarbeitung verwendet und befindet sich auch auf demselben Server, sodass die Daten schneller verarbeitet werden können. Hadoop MapReduce verarbeitet große Datenmengen, die unstrukturiert oder halbstrukturiert sind, in kürzerer Zeit.
6. Ein einfaches Programmiermodell
Die MapReduce-Programmierung basiert auf einem sehr einfachen Programmiermodell, mit dem die Programmierer im Grunde genommen ein MapReduce-Programm entwickeln können, das viel mehr Aufgaben einfacher und effizienter bewältigen kann. Das MapReduce-Programmiermodell wurde in Java geschrieben und ist sehr beliebt und sehr einfach zu erlernen. Es ist für Menschen einfach, Java-Programmierung zu erlernen und Datenverarbeitungsmodelle zu entwerfen, die ihren geschäftlichen Anforderungen entsprechen.
7. Parallelverarbeitung
Das Programmiermodell teilt die Aufgaben so auf, dass die unabhängige Aufgabe parallel ausgeführt werden kann. Diese parallele Verarbeitung erleichtert es den Prozessen daher, die einzelnen Aufgaben zu erledigen, wodurch das Programm in viel kürzerer Zeit ausgeführt werden kann.
8. Verfügbarkeit und Belastbarkeit
Das Hadoop MapReduce-Programmiermodell verarbeitet die Daten, indem es sie an einen einzelnen Knoten sendet und denselben Datensatz an die anderen Knoten im Netzwerk weiterleitet. Im Falle eines Ausfalls in einem bestimmten Knoten ist auf den anderen Knoten immer noch dieselbe Datenkopie verfügbar, die verwendet werden kann, wann immer dies erforderlich ist, um die Verfügbarkeit von Daten sicherzustellen.
Auf diese Weise ist Hadoop fehlertolerant. Dies ist eine einzigartige Funktion, die in Hadoop MapReduce angeboten wird und die es ermöglicht, den Fehler schnell zu erkennen und eine schnelle Korrektur für eine automatische Wiederherstellungslösung vorzunehmen.
Es gibt viele Unternehmen auf der ganzen Welt, die Kartenreduzierung verwenden, wie Facebook, Yahoo, usw.
Fazit - Was ist MapReduce?
Map Reduce bietet im Vergleich zu herkömmlichen RDBMS-Systemen eine große Kapazität für die Verarbeitung großer Datenmengen. Viele Unternehmen haben bereits ihr Potenzial erkannt und greifen auf diese neue Technologie zurück. Es ist klar, dass Kartenreduzierung in einer großen Datenverarbeitungsplattform eine sehr lange Zeit in Anspruch nimmt.
Empfohlene Artikel
Dies war eine Anleitung zu Was ist MapReduce. Hier haben wir das grundlegende Konzept, die Beispiele und die Vorteile von MapReduce besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -
- Was ist JavaScript?
- Fragen in Vorstellungsgesprächen bei MapReduce
- Was ist Python?
- So funktioniert MapReduce
- Was ist Big Data und Hadoop