我有一个MapReduce作业,我需要在运行之前处于某种状态。我尝试使用合成器来实现我想要的但是工作依旧于#34;开始刷新地图输出"。正因为如此,我决定转向一个链式的工作流程,这将把这两个工作结合起来做所需的工作。
我查看了网络上的例子,例如Yahoo's docs,但我无法使用更新的API找到这样做的方法,并希望了解如何执行此操作的示例。以下是我的流程:
作业1:
作业2:
如果有人能给我一个做上述事情的例子,或者可以指出我的一些文档,我会很感激。
链式映射器方法在这里也不合适,因为当我进行缩减时,我需要一个基于键的迭代。
答案 0 :(得分:0)
在配置和提交作业的java代码中(通常是ToolRunner子类中的run()方法),提交第一份作业:
job.waitForCompletion(true);
在配置和提交第二个作业之前。此方法将等到作业完成后再返回。
答案 1 :(得分:0)
如果指定路径作为第一个作业的输出,则使用与第二个作业的输入相同的路径,将数据临时写入Hadoop并在第二个作业完成后清除。这是使用彼此输出链接两个作业的最简单方法。