In meiner Eingabedatei verwende ich den Hadoop-local-Befehl, wenn ich den Jar für meinen MapReduce-Job erzeuge. Ich wollte wissen, ob es einen Weg gab, den Pfad für jede Datei in meinem Eingabeordner, der im MapReduce-Job verwendet werden soll, spezifisch anzugeben, und ob ich einfach alle Dateien aus meinem Eingabeordner angeben und übergeben könnte. Dies liegt daran, dass sich der Inhalt und die Anzahl der Dateien aufgrund der Art des MapReduce-Jobs ändern können, den ich zu konfigurieren versuche, und da ich die genaue Anzahl der Dateien nicht kenne, gibt es neben dem Inhalt dieser Dateien auch einen Weg dazu Übergeben Sie alle Dateien aus dem Eingabeordner in mein MapReduce-Programm und durchlaufen Sie dann jede Datei, um eine bestimmte Funktion zu berechnen, die dann die Ergebnisse an den Reducer sendet. Ich verwende nur ein Map/Reduce-Programm und bin in Java programmiert. Ich kann den hadoop-moonshot-Befehl verwenden, arbeite aber momentan mit hadoop-local.Hadoop, MapReduce - Mehrere Eingabe-/Ausgabepfade
Danke.
Falls Sie ein HDFS-Verzeichnis in Ihrem Job statt eine Datei angeben, dann werden alle Dateien gelesen werden sollen. Können Sie Ihre Frage bitte bearbeiten, um den Befehl, den Sie ausführen, einzuschließen? Vielleicht ein Code in einem [mcve], auch? –
Danke @ cricket_007 könntest du vielleicht bitte ein Beispiel für einen Aufruf des HDFS-Verzeichnisses statt einer einzigen Datei angeben. Außerdem würde ich für jede Eingabe eine separate Ausgabedatei haben. Ich schätze, es ist irgendwie mit der MultipleOutput-Klasse, aber ich kann nicht sehen, wie im Moment. –
Ich kann mich nicht erinnern, wie man mehrere Dateien ausgibt, aber die mapreduce-Ausgabe selbst muss in einem Verzeichnis sein. Wie bei der Verzeichniseingabe liest das [Wordcount-Beispiel] (https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Usage) zwei Dateien von einer Verzeichnis –