MapReduce ist ein grundlegendes Programmierkonzept, das Sie beherrschen müssen, um ein professioneller Dateningenieur zu werden. Es bietet Lösungen für verteilte Big-Data-Dateiverwaltungssysteme. Wenn Sie also den theoretischen Hintergrund von MapReduce verstehen, wird Ihnen das Erlernen der Technik selbst leicht fallen.
Aber was ist MapReduce und wie funktioniert es in verteilten Dateisystemen? Das erfährst du in diesem Beitrag.
Was ist MapReduce?
MapReduce ist ein Data-Engineering-Modell, das auf Programme oder Anwendungen angewendet wird, die Big-Data-Logik in parallelen Clustern von Servern oder Knoten verarbeiten. Es verteilt eine Verarbeitungslogik auf mehrere Datenknoten und aggregiert die Ergebnisse im Client-Server.
MapReduce stellt sicher, dass die Verarbeitung schnell, speichereffizient und zuverlässig ist, unabhängig von der Größe der Daten.
Hadoop File System (HDFS), Google File System (GFS), Apache Kafka, GlusterFS und mehr sind Beispiele für verteilte Big-Data-Dateisysteme, die den MapReduce-Algorithmus verwenden.
Was ist ein verteiltes Dateisystem?
Ein verteiltes Dateisystem (DFS) ist eine Speichermethode in der Datenverarbeitung, bei der große Datendateien in kleinere Blöcke aufgeteilt und auf mehrere Server innerhalb des Systems verteilt werden. Es ermöglicht Clients aus verschiedenen Quellen, Daten zu schreiben und zu lesen, programmierbare Logik für Daten freizugeben und auszuführen – von überall aus.
Ein verteiltes Dateisystem besteht typischerweise aus dem primären Server (in Hadoop auch NameNode genannt), parallele Cluster und mehrere Knoten oder Server, die replizierte Datenblöcke enthalten, alles in einer Datei Center. Jeder Cluster innerhalb des verteilten Dateisystems enthält jedoch Hunderte bis Tausende dieser Knoten.
Der primäre Server erkennt automatisch Änderungen innerhalb der Cluster. So kann es jedem Knoten entsprechende Rollen zuweisen.
Wenn der primäre Server eine Datendatei empfängt, sendet er sie an die Cluster innerhalb des DFS. Diese Cluster teilen die Daten auf und verteilen sie auf jeden Knoten in ihnen. Jeder Knoten repliziert dann die Daten in sogenannte Datenblöcke, um eine Kette zu bilden. An diesem Punkt wird jeder Knoten zu einem Chunk-Server.
Verwandt:Was sind Rechenzentren und warum sind sie wichtig?
Zusätzlich zur Verwaltung des Zugriffs auf die Daten hält der primäre Server eine Metadatenanmerkung zu jeder Datei. Auf diese Weise weiß es, welcher Knoten welche Datei in jedem Cluster verarbeitet.
Wie funktioniert MapReduce in verteilten Dateisystemen?
Wie bereits erwähnt, ist Big Data in mehreren Chunk-Servern in einem DFS verfügbar. Eine Möglichkeit, programmierbare Logik auf diese Datendateien anzuwenden, besteht darin, sie zu einer einzigen zusammenzufassen. Sie können sie dann in einen einzigen Server ziehen, der nun die Logik übernimmt.
Während dies eine herkömmliche Art der Datenabfrage ist, besteht das Problem darin, dass die Daten innerhalb des einzelnen Servers wieder zu einem Ganzen werden. Ein einzelner Server muss also immer noch die Logik für mehrere Petabyte an Daten gleichzeitig verwalten. Leider war dies das Problem, das das System zunächst lösen sollte. Es ist also doch keine Best Practice.
Verwandt:So fragen Sie mehrere Datenbanktabellen gleichzeitig mit SQL-Joins ab
Darüber hinaus birgt eine solche Aggregation zu einem einzelnen Server mehrere Leistungsrisiken. Diese können von einem Serverabsturz, schlechter Berechnungseffizienz, hoher Latenz, hohem Speicherverbrauch und Schwachstellen bis hin zu mehr reichen.
Aber eine andere Möglichkeit, die programmierbare Logik auszuführen, besteht darin, die Daten in Blöcken auf jedem verteilten Server zu belassen. Und dann fügen Sie die Logikfunktion in jeden Server ein. Das bedeutet, dass jetzt jeder Chunk-Server innerhalb eines Clusters seine Berechnung übernimmt. Die Verwendung dieses Ansatzes bedeutet, dass es nicht erforderlich ist, Daten auf einem einzelnen Server zu aggregieren oder abzurufen.
Dass es das MapReduce-Konzept in einem verteilten Dateisystem gibt. Es stellt sicher, dass ein einzelner Server keine Daten aus der Quelle abrufen muss. Stattdessen verteilt es die Verarbeitungsfunktion (MapReduce) in mehrere separate Chunk-Knoten Cluster, sodass jeder Knoten innerhalb jedes Clusters die Logik einzeln behandelt, ohne einen einzelnen zu überladen Server.
Folglich handhaben mehrere Server die Logik von Datenbits gleichzeitig. Diese Verteilung der Arbeit auf die Server führt unter anderem zu optimaler Leistung und höherer Sicherheit.
Wie wird das MapReduce-Ergebnis in einem DFS verarbeitet?
So funktioniert die gesamte MapReduce-Verarbeitung in einem DFS:
- Der primäre Server erhält eine Big-Data-Abfrage (MapReduce-Funktion) vom Client.
- Anschließend sendet es diese an jeden Cluster, um sie über alle darin enthaltenen Knoten zu verteilen.
- Jeder Knoten verarbeitet die MapReduce-Funktion und kumuliert ihr Ergebnis.
- Ein weiterer Server sammelt die Ergebnisse von jedem Knoten und sendet sie zurück an den primären Server.
- Der primäre Server sendet dann das Ergebnis als Antwort an den Client.
Somit besteht die einzige Aufgabe eines primären Servers darin, ein fertig berechnetes Ergebnis an den Client zu senden, auf Änderungen zu hören und den Zugriff auf die Daten zu verwalten. Es führt keine Berechnungen durch. Aus diesem Grund sind die meisten Cloud-Computing-Anwendungen trotz der Datenmenge, die sie verarbeiten, beeindruckend schnell.
Was genau ist Map und Reduce in MapReduce?
MapReduce verwendet zwei Programmierlogiken, um große Datenmengen in einem verteilten Dateiverwaltungssystem (DFS) zu verarbeiten. Dies sind eine Map- und eine Reduce-Funktion.
Die Karte -Funktion führt die Verarbeitungsaufgabe auf jedem der Datenknoten in jedem Cluster eines verteilten Dateisystems aus. Die reduzieren -Funktion aggregiert dann die von jedem Chunk-Server zurückgegebenen Ergebnisse und übergibt sie zur Ergebnisaggregation an einen anderen Server innerhalb des DFS. Der empfangende Server sendet diese Berechnung an den primären Server, der den zurückgegebenen Wert an den clientseitigen Server sendet.
Was passiert, wenn ein Chunk-Server ausfällt?
Bei Servern in einem verteilten Dateisystem (DFS) kann es manchmal zu Ausfallzeiten kommen. Sie könnten denken, dass dies das gesamte System kaputt machen wird, aber das ist nicht der Fall.
Es gibt ein System in der Computertechnik, das einen solchen drohenden Zusammenbruch verhindert. Nennt sich Fehlertoleranz.
Verwandt:Was ist Cloud-Computing? Wie funktioniert Cloud-Technologie?
Selbst wenn ein Server während der Datenverarbeitung ausfällt, stellt die Fehlertoleranz sicher, dass der primäre Server dies sofort erkennt. Und da auf den Knoten eine Kopie der Datenblöcke vorhanden ist, überträgt der primäre Server den Verarbeitungsauftrag sofort an einen anderen Server. Auf diese Weise wirken sich Serverausfallzeiten innerhalb des DFS nicht auf die Datenverarbeitung aus.
MapReduce erleichtert die Big-Data-Verarbeitung
MapReduce ist ein grundlegendes Modell, das die Berechnung in verteilten Dateisystemen vereinfacht. Da mehrere Knoten gleichzeitig eine Berechnung ausführen können, ist es eine schnelle Methode, die von verschiedenen Technologiegiganten verwendet wird, um viele der Probleme zu lösen, die mit der Big-Data-Analyse einhergehen.
Google, Amazon, IBM und andere sind Beispiele für Unternehmen, die dieses Konzept verwenden. Google wendet beispielsweise das MapReduce-Konzept an, um Abfrageergebnisse während der Google-Suche anzuzeigen.
Big Data treibt viele Branchen an und beeinflusst unser aller Leben. Aber ist es gefährlicher oder hilfreicher?
Lesen Sie weiter
- Programmierung
- Programmierung
- Große Daten
- Datenanalyse
Idowu hat eine Leidenschaft für Smart Tech und Produktivität. In seiner Freizeit spielt er mit Programmieren herum und wechselt bei Langeweile zum Schachbrett, aber er liebt es auch, ab und zu aus der Routine auszubrechen. Seine Leidenschaft, Menschen den Weg durch moderne Technologie zu zeigen, motiviert ihn, mehr zu schreiben.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden