/ / Ako počítať počet súborov v HDFS z úlohy MR? java, hadoop, mapreduce, hdfs

Ako môžem počítať počet súborov v HDFS z úlohy MR? - java, hadoop, mapreduce, hdfs

Ja som nový pre Hadoop a Java pre túto vec. Pokúšam sa spočítať počet súborov v priečinku na HDFS z ovládača MapReduce, ktorý píšem. Rád by som to urobil bez toho, aby som nazval HDFS Shell, pretože chcem, aby som mohol prejsť do adresára, ktorý používam pri spustení úlohy MapReduce. Skúšal som niekoľko metód, ale nemal som úspech v implementácii kvôli mojim neskúsenosť s Java.

Akákoľvek pomoc by bola veľmi ocenená.

Vďaka,

Nomad.

odpovede:

2 pre odpoveď č. 1

Môžete jednoducho použiť FileSystem a opakovať cez súbory vo vnútri cesty. Tu je niektorý príklad kód

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();
}