/ / Wie zähle ich die Anzahl der Dateien in HDFS von einem MR-Job? - Java, Hadoop, Mapreduce, hdfs

Wie zähle ich die Anzahl der Dateien in HDFS von einem MR-Job? - Java, Hadoop, Mapreduce, hdfs

Ich bin neu in Hadoop und Java. Ich versuche, die Anzahl der Dateien in einem HDFS-Ordner aus dem MapReduce-Treiber zu ermitteln, den ich gerade schreibe. Ich möchte dies tun, ohne die HDFS-Shell aufzurufen, da ich das Verzeichnis weitergeben möchte, das ich benutze, wenn ich den MapReduce-Job ausführe. Ich habe eine Reihe von Methoden ausprobiert, hatte aber keinen Erfolg bei der Implementierung Unerfahrenheit mit Java.

Jede Hilfe würde sehr geschätzt werden.

Vielen Dank,

Nomade.

Antworten:

2 für die Antwort № 1

Sie können einfach das Dateisystem verwenden und über die Dateien innerhalb des Pfades iterieren. Hier ist ein Beispielcode

int count = 0;
FileSystem fs = FileSystem.get(getConf());
boolean recursive = false;
RemoteIterator<LocatedFileStatus> ri = fs.listFiles(new Path("hdfs://my/path"), recursive);
while (ri.hasNext()){
count++;
ri.next();
}