如何在mapreduce驱动程序类中获取总输入文件大小?

时间:2015-07-18 11:28:44

标签: java hadoop mapreduce

我希望获得驱动程序类中的总输入大小。 我在HDFS中有多个文件夹作为输入。

输入路径如下所示。

的/ tmp /输入/ * / * / * / * /文件名

将所有子文件夹中的所有文件都带有文件名。

我希望在驱动程序类中找到输入的总大小。

1 个答案:

答案 0 :(得分:0)

您只需拨打一次HDFS即可:

Path pattern = new Path("/tmp/input/*/*/*/*/filename")    
FileSystem fs = FileSystem.get(conf);
FileStatus[] statuses = fs.globStatus(pattern);
long total = 0;
for (FileStatus file : statuses) {
    total += file.getLen();
}

fs.globStatus(pattern)将以与hadoop fs -ls相同的方式列出文件

当您初始化MR作业的输入时,请使用模式而不是返回的文件状态。