我在一起工作。第i
轮缩减的输出是第Mapper
轮的setup()
i+1
所需的文件。我正在尝试在reduce
中获取此文件的名称。什么是访问工作索引的好方法?也许给作业命名i
并在reduce
中访问该名称?
更新对于每个作业,我需要报告一个值,该值是我在reduce
中计算的每个作业的摘要统计信息(我有一个缩减器)。如何将该值输出到自己的文件中,或附加到单个文件?我的输出路径已经用于主要计算。
我最后将摘要统计信息附加到每个reducer的cleanup
中的HDFS文件中,每个作业只有一个reducer。
@Override
protected void cleanup(Context context) throws IOException, InterruptedException {
FileSystem hdfs = FileSystem.get(context.getConfiguration());
FSDataOutputStream os = hdfs.append(new Path(COST_FILENAME));
PrintStream out = new PrintStream(os);
out.println(String.valueOf(cost));
out.close();
}
答案 0 :(得分:0)
一个简单的解决方案是使用Job#setInputPath()
和Job#setOutputPath()
为作业使用不同的输入/输出文件夹。
input
,输出:output-1
output-1
,输出:output-2
output-(N-1)
,输出:output-N