如何有效地将信息从减速机传回工作岗位?

时间:2014-02-07 11:21:28

标签: java hadoop mapreduce

在项目中,我需要将mapreduce任务的reducer中的数字信息传递回作业。该工作基本上包括运行在相同数据上运行的一系列mapreduce任务,每个任务都由前一个结果配置。我们有一些例子:

我想确定一组数据中的(可能是多字段)键是什么。这些字段命名为A,B,C等。后续任务将是:

  1. 计算A的基数。
  2. A不是关键。 AB可能是。计算AB的基数。
  3. AB是关键。我们也可以推断ABC也是。但我们必须计算B,AC和BC的基数。
  4. [...]
  5. 将所有密钥写入文件。
  6. 基本上,我的第一个想法是让每个基数计算任务返回一系列计数器,每个候选者一个,每个计数器在reducer中只分配一次。这些作业的输出为NullOutputStream。这种方法的问题在于计数器的数量是有限的,每个步骤的候选者数量可能非常大。

    第二个想法是让reducer在HDFS上的某处输出不同的计数器,并将其传递给下一个任务。这不起作用,因为计数器用于任务配置,但不作为其输入。

    有没有人更清楚我是如何做到这一点的?

0 个答案:

没有答案