链式map-reduce程序

luaexgnf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(464)

我有一种情况,在一个poc期间,我想在一个job中创建一个嵌套的mapreduce。就像一个Mapm1 o/p到reducer r1 o/p,那么r1输出到m2,最终输出将与m2一起出现,或者我们可以用m2 o/p运行r2。
单个作业id-m1->r1->m2->r2…最终输出将在单个o/p文件中。
没有奥齐我们能做到吗?

zaq34kh6

zaq34kh61#

可以在驱动程序类中链接多个作业。首先,通过定义所有必需的配置,为第一个mapreduce创建一个作业。然后,像往常一样拨打以下电话开始作业:

job1.waitForCompletion(true);

这是等到工作完成。现在检查第一个作业的最终状态,无论是失败还是成功,以便执行适当的下一个操作。
如果第一个作业成功完成,则以相同的方式启动下一个mapreduce。首先定义所需的参数并使用以下命令启动作业:

job2.waitForCompletion(true);

重要的是第一个作业的输出路径将是第二个作业的输入路径。这是串行(顺序)作业链,因为两个作业将一个接一个地运行。

doinxwow

doinxwow2#

您还可以使用作业控制,在其中可以按顺序执行多个map reduce作业。在您的例子中,有两个Map器和两个或一个还原器。可以有两个map reduce作业,对于第二个作业,如果不需要reducer,可以使用将reducer的数量设置为零。

相关问题