在项目中,我需要将mapreduce任务的reducer中的数字信息传递回作业。该工作基本上包括运行在相同数据上运行的一系列mapreduce任务,每个任务都由前一个结果配置。我们有一些例子:
我想确定一组数据中的(可能是多字段)键是什么。这些字段命名为A,B,C等。后续任务将是:
基本上,我的第一个想法是让每个基数计算任务返回一系列计数器,每个候选者一个,每个计数器在reducer中只分配一次。这些作业的输出为NullOutputStream
。这种方法的问题在于计数器的数量是有限的,每个步骤的候选者数量可能非常大。
第二个想法是让reducer在HDFS上的某处输出不同的计数器,并将其传递给下一个任务。这不起作用,因为计数器用于任务配置,但不作为其输入。
有没有人更清楚我是如何做到这一点的?