我希望获得驱动程序类中的总输入大小。 我在HDFS中有多个文件夹作为输入。
输入路径如下所示。
的/ tmp /输入/ * / * / * / * /文件名
将所有子文件夹中的所有文件都带有文件名。
我希望在驱动程序类中找到输入的总大小。
答案 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作业的输入时,请使用模式而不是返回的文件状态。