/ / Hadoop Map / Jobverteilung reduzieren - hadoop, mapreduce

Hadoop Map / Reduce Stellenverteilung - hadoop, mapreduce

Ich habe 4 Knoten und führe eine Mapreduce ausBeispielprojekt, um zu sehen, ob der Job zwischen allen 4 Knoten verteilt ist. Ich habe das Projekt mehrmals ausgeführt und festgestellt, dass die Mapper-Task auf alle 4 Knoten aufgeteilt wird, die Reduktions-Task jedoch nur von einem Knoten ausgeführt wird. Ist dies so, wie angenommen wird, oder wird die Aufgabe des Reduzierers auf alle 4 Knoten aufgeteilt?

Vielen Dank

Antworten:

0 für die Antwort № 1

Die Verteilung der Mapper hängt von dem Block von abDaten, mit denen der Mapper arbeiten wird. Framework versucht standardmäßig, die Aufgabe einem Knoten zuzuordnen, auf dem der Datenblock gespeichert ist. Dies verhindert die Netzwerkübertragung von Daten.

Bei Reduzierern kommt es wieder auf Nein an. Reduzierungen, die Ihre Arbeit erfordert. Wenn in Ihrem Job nur ein Reduzierer verwendet wird, kann er allen Knoten zugewiesen werden.

Dies wirkt sich auch spekulativ aus. Wenn diese Option aktiviert ist, werden mehrere Instanzen der Map-Task / Reduction-Task auf verschiedenen Knoten gestartet, und der Job-Tracker entscheidet auf der Grundlage der Fertigstellung von%, welche durchlaufen wird, und andere Instanzen werden beendet.


0 für die Antwort № 2

Nehmen wir an, Sie haben eine 224 MB-Datei. Wenn Sie diese Datei basierend auf der Standardblockgröße von 64 MB zu HDFS hinzufügen, werden die Dateien in 4 Blöcke aufgeteilt.blk1=64M,blk2=64M,blk3=64M,blk4=32M]. Nehmen wir an, dass in Knoten1 als Knoten dargestellt wird blk1::node1, blk2::node2, blk3:node3, blk4:node4. Wenn Sie nun den MR ausführen, muss die Karte angezeigt werdenZugriff auf die Eingabedatei. MR FWK erstellt also 4 Mapper und wird auf jedem Knoten ausgeführt. Jetzt kommt der Reduzierer, wie Venkat sagte, es hängt von der Anzahl der Reduzierungen ab, die für Ihre Arbeit konfiguriert wurden. Die Reduzierungen können mit der Hadoop-API org.apache.hadoop.mapreduce.Job setNumReduceTasks (int task) konfiguriert werden.