如何计算MR作业中HDFS中的文件数?

时间:2013-05-02 17:44:45

标签: java hadoop mapreduce hdfs

我是Hadoop和Java的新手。我正在尝试从我正在编写的MapReduce驱动程序中计算HDFS上文件夹中的文件数。我想在不调用HDFS Shell的情况下这样做,因为我希望能够传入我在运行MapReduce作业时使用的目录。我已经尝试了很多方法但由于我缺乏Java经验而没有成功实现。

非常感谢任何帮助。

谢谢,

游牧。

1 个答案:

答案 0 :(得分:2)

您可以使用FileSystem并迭代路径中的文件。这是一些示例代码

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