Programmgesteuertes Lesen der Ausgabe von Hadoop Mapreduce Program

8

Dies mag eine grundlegende Frage sein, aber ich konnte keine Antwort auf Google finden.
Ich habe einen Map-Reduce-Job, der mehrere Ausgabedateien in seinem Ausgabeverzeichnis erstellt. Meine Java-Anwendung führt diesen Job auf einem Remote-Hadoop-Cluster aus, und nachdem der Job beendet ist, muss er die Ausgabe mithilfe von org.apache.hadoop.fs.FileSystem API programmatisch lesen. Ist es möglich? Die Anwendung kennt das Ausgabeverzeichnis, nicht jedoch die Namen der Ausgabedateien, die vom Map-Redu- ze-Job generiert wurden. Es scheint, dass es keine Möglichkeit gibt, den Inhalt eines Verzeichnisses in der Hadoop-Dateisystem-API programmatisch aufzulisten. Wie werden die Ausgabedateien gelesen?
Es scheint so ein alltägliches Szenario zu sein, dass ich sicher bin, dass es eine Lösung gibt. Aber mir fehlt etwas sehr Offensichtliches.

    
nabeelmukhtar 12.04.2011, 11:01
quelle

3 Antworten

19

Die Methode, nach der Sie suchen, heißt listStatus (Pfad). Es gibt einfach alle Dateien in einem Pfad als FileStatus-Array zurück. Dann können Sie einfach über sie schleifen, ein Pfadobjekt erstellen und es lesen.

%Vor%

Für Hadoop 2.x können Sie den Reader wie folgt einrichten:

%Vor%     
Thomas Jungblut 12.04.2011, 12:28
quelle
0

Sie haben ein paar Optionen: Hier sind zwei, die ich manchmal benutze.

Methode 1: Verwenden Sie abhängig von Ihrer Datengröße die folgenden HDFS-Befehle (gefunden hier , Punkt 6)

%Vor%

"Dies verkettet die HDFS-Dateien hdfs-output-dir / part- * in einer einzigen lokalen Datei."

Dann können Sie nur die eine Datei einlesen. (Beachten Sie, dass es sich um lokalen Speicher und nicht um HDFS handelt)

Methode 2 : Erstellen Sie eine Hilfsmethode: (Ich habe eine Klasse namens HDFS, die die Konfigurations-, FileSystem-Instanzen sowie andere Hilfsmethoden enthält)

%Vor%

Sie können dann über einen Befehl wie folgt aufrufen: hdfs.matchFiles("/user/kenny/mrjob/", "part-")

    
Kenny Cason 17.06.2013 12:43
quelle
0
%Vor%     
Saurabh 14.01.2016 12:17
quelle

Tags und Links