Hadoop: Wie funktioniert OutputCollector während MapReduce?

9

Ich möchte wissen, ob die 'instance'-Ausgabe des OutputCollectors in der Map-Funktion verwendet wird: output.collect (Schlüssel, Wert) diese -output- die Schlüsselwertpaare irgendwo speichern? Selbst wenn es an die Reducer-Funktion gesendet wird, muss es sich um eine Zwischendatei handeln, richtig? Was sind diese Dateien? Sind sie vom Programmierer sichtbar und entschieden? Sind die OutputKeyClass und OutputValueClasses, die wir in der Hauptfunktion angeben, diese Speicherorte? [Text.class und IntWritable.class]

Ich gebe den Standardcode für das Word Count-Beispiel in MapReduce, das wir an vielen Stellen im Netz finden können.

%Vor%     
catty 12.06.2012, 12:46
quelle

3 Antworten

3

Die Ausgabe der Map-Funktion wird in temporären Zwischendateien gespeichert. Diese Dateien werden von Hadoop transparent behandelt. In einem normalen Szenario hat der Programmierer keinen Zugriff darauf. Wenn Sie wissen möchten, was in den einzelnen Mappern passiert, können Sie die Protokolle für den jeweiligen Job überprüfen, in denen Sie eine Protokolldatei für jede Map-Aufgabe finden.

Wenn Sie kontrollieren wollen, wo die temporären Dateien erzeugt werden und auf diese zugreifen können, müssen Sie Ihre eigene OutputCollector-Klasse erstellen, und ich weiß nicht, wie einfach das ist.

Wenn Sie sich den Quellcode ansehen wollen, können Sie ihn mit svn herunterladen. Ich denke, es ist hier verfügbar: Ссылка .

    
Chaos 14.06.2012 05:21
quelle
2

Ich glaube, sie werden an temporären Speicherorten gespeichert und sind für den Entwickler nicht verfügbar, es sei denn, Sie erstellen eine eigene Klasse, die OutputCollector implementiert.

Ich musste einmal auf diese Dateien zugreifen und löste das Problem durch Erstellen von Nebeneffektdateien: Ссылка

    
Ulises 12.06.2012 12:55
quelle
0

Die gruppierten Zwischenausgänge werden immer in SequenceFiles gespeichert. Anwendungen können angeben, ob und wie die Zwischenausgaben komprimiert werden sollen und welche CompressionCodecs über die JobConf verwendet werden sollen.

Ссылка

    
kaushik mahaldar 25.09.2013 10:31
quelle

Tags und Links