将先前Reducer的结果设置为配置参数

时间:2014-03-22 19:12:07

标签: hadoop mapreduce

作为计算逻辑的一部分,在Mapreduce工作流程中,我需要将reducer的结果作为链中下一个reducer的参数。

    Path plc =new Path(args[1]+"/3");--> Outputpath from the previous reducer

    Configuration c4=  new Configuration();
    c4.set("denom", GetLineC.extCount(plc));---> GetLineC.extCount is a function that returns a value
    ControlledJob cJob4= new ControlledJob(c4);

我使用JobControl创建作业和所有配置之间的依赖关系。当程序执行时,它给出"没有这样的文件或目录"。当控件到达这个部分时,文件将出现在这个位置。但由于配置在开始时被实例化,因此会出现此错误。

有没有办法直接将前一个reducer的单行输出设置为参数?

1 个答案:

答案 0 :(得分:0)

嗯,我认为你的意思是以前的工作,而不是以前的减速机。如果您使用相同的驱动程序类执行这两个作业,则您已经知道上一个作业的输出,即目录。显然,您只使用一个reducer,它会将其输出写入输出路径中的part-r-00000文件中。要将其设置为下一个作业的配置参数,您必须手动读取此文件。

您是否在考虑GetLineC.extCount(Path path)