HBase
 sql >> Datenbank >  >> NoSQL >> HBase

Einführung in die Datenlokalität in Hadoop MapReduce

In diesem Hadoop-Tutorial Wir erklären Ihnen das Konzept der Datenlokalität in Hadoop.

Zuerst werden wir die Einführung in die MapReduce-Datenlokalität in Hadoop sehen, dann werden wir die Notwendigkeit der Hadoop-Datenlokalität als nächstes mit den Kategorien der Datenlokalität in MapReduce und der Optimierung der Datenlokalität diskutieren.

Schließlich werden wir in diesem MapReduce-Tutorial die Vorteile des Hadoop Data Locality-Prinzips sehen.

Was ist die Datenlokalität in Hadoop MapReduce?

Datenlokalität in Hadoop ist der Prozess, bei dem die Berechnung in die Nähe des tatsächlichen Datenspeicherorts verschoben wird, anstatt große Datenmengen zur Berechnung zu verschieben. Dies minimiert die Gesamtüberlastung des Netzwerks. Dies erhöht auch den Gesamtdurchsatz des Systems.

Der Haupt-Nachteil von Hadoop war aufgrund der riesigen Datenmenge ein Cross-Switch-Netzwerkverkehr. Um diesen Nachteil zu überwinden, wurde Data Locality ins Leben gerufen.

In Hadoop HDFS speichert Datensätze. Framework unterteilt Datensätze in Blöcke und speichert sie über die Datenknoten hinweg. Wenn ein Client den MapReduce-Job ausführt, sendet NameNode den MapReduce-Code an die Datenknoten, auf denen Daten gemäß dem MapReduce-Job verfügbar sind.

Anforderung für Hadoop-Datenlokalität

Die Hadoop-Architektur muss die folgenden Bedingungen erfüllen, um alle Vorteile der Datenlokalität nutzen zu können:

  • Erstens sollte der Hadoop-Cluster die geeignete Topologie haben. Der Hadoop-Code sollte in der Lage sein, die Datenlokalität zu lesen.
  • Zweitens sollte Apache Hadoop die Topologie der Knoten kennen, auf denen Aufgaben ausgeführt werden. Auch Hadoop sollte wissen, wo sich die Daten befinden.

Kategorien der Datenlokalität in Hadoop

Die verschiedenen Kategorien in Hadoop Data Locality lauten wie folgt:

1. Lokale Datenlokalität der Daten in Hadoop

Dabei befinden sich Daten auf demselben Knoten wie der Mapper Arbeiten an den Daten. Dabei ist die Nähe der Daten der Berechnung sehr nahe. Die lokale Datenlokalität der Daten ist das am meisten bevorzugte Szenario.

2. Intra-Rack-Datenlokalität in Hadoop

Da wir wissen, dass es aufgrund von Ressourcenbeschränkungen nicht immer möglich ist, den Mapper auf demselben Datenknoten auszuführen. In diesem Fall ist es vorzuziehen, den Mapper auf einem anderen Knoten, aber auf demselben Rack auszuführen.

3. Datenlokalität zwischen Racks in Hadoop

Manchmal ist es auch nicht möglich, Mapper auf einem anderen Knoten im selben Rack auszuführen. In einer solchen Situation führen wir den Mapper auf den Knoten in verschiedenen Racks aus. Die Lokalisierung von Daten zwischen Racks ist das am wenigsten bevorzugte Szenario.

Optimierung der Hadoop-Datenlokalität

Da die Datenlokalität der Haupt-Vorteil von Hadoop ist Karte verkleinern. In der Praxis ist dies jedoch aus verschiedenen Gründen nicht immer vorteilhaft, z. B. Heterogener Cluster, spekulative Ausführung, Datenverteilung und -platzierung sowie Datenlayout.

In großen Clustern treten Herausforderungen häufiger auf. Da in großen Clustern je mehr Datenknoten und Daten vorhanden sind, desto geringer ist die Lokalität.

In größeren Clustern sind einige Knoten neuer und schneller als die anderen, wodurch das Daten-zu-Berechnungs-Verhältnis aus dem Gleichgewicht gerät. Daher sind große Cluster tendenziell nicht vollständig homogen.

Bei der spekulativen Ausführung von Hadoop sind die Daten möglicherweise nicht lokal, verwenden jedoch die Rechenleistung. Die Hauptursache liegt auch im Datenlayout/Platzierung. Auch die nicht-lokale Datenverarbeitung belastet das Netzwerk, was zu Problemen bei der Skalierbarkeit führt. Daher wird das Netzwerk zum Flaschenhals.

Wir können auch die Datenlokalität verbessern, indem wir zuerst erkennen, welche Jobs sich im Laufe der Zeit verschlechtert haben oder welche Datenlokalisierungsprobleme auftreten. Die Problemlösung ist komplexer und beinhaltet die Änderung der Datenplatzierung und des Datenlayouts mit einem anderen Scheduler.

Danach müssen wir überprüfen, ob eine neue Ausführung der gleichen Workload ein besseres Datenlokalitätsverhältnis hat.

Vorteile der Datenlokalität in Hadoop

  • Hoher Durchsatz –  Die Datenlokalität in Hadoop erhöht den Gesamtdurchsatz des Systems.
  • Schnellere Ausführung –  Bei der Datenlokalität verschiebt das Framework Code zu dem Knoten, auf dem sich Daten befinden, anstatt große Datenmengen zu dem Knoten zu verschieben. Dadurch wird Hadoop schneller. Da die Größe des Programms immer geringer ist als die Größe der Daten, ist das Verschieben von Daten ein Engpass bei der Netzwerkübertragung.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Datenlokalität in Hadoop die Gesamtausführung des Systems verbessert und Hadoop schneller macht. Daher wird die Netzwerküberlastung reduziert.

Wenn Sie diesen Blog hilfreich finden oder Fragen haben, hinterlassen Sie einen Kommentar im Kommentarbereich unten. Wir lösen sie gerne.