Hadoop作业链:跟踪作业索引

时间:2014-02-03 22:29:24

标签: java hadoop

我在一起工作。第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();
}

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是使用Job#setInputPath()Job#setOutputPath()为作业使用不同的输入/输出文件夹。

  • job1:输入:input,输出:output-1
  • job2:输入:output-1,输出:output-2
  • ...
  • jobN:输入:output-(N-1),输出:output-N