用oozie运行多个mapreduce作业?

时间:2012-11-13 21:39:02

标签: hadoop oozie

作为解决方法的一部分,我想使用两个mapreduce作业(而不是一个)应该按顺序运行以产生所需的效果。

每个作业中的map函数只是发出每个键,值对而不进行处理。每个作业中的reduce函数都不同,因为它们执行不同类型的处理。

我偶然发现了oozie,它似乎直接写入了后续作业的输入流(或者不是吗?) - 这很好,因为中间数据很大(I / O操作会成为瓶颈)

如何使用oozie(工作流程中的2个小时工作)实现此目的?

我确实浏览了以下资源,但他们只是将一个作业作为工作流程运行: https://cwiki.apache.org/confluence/display/OOZIE/Map+Reduce+Cookbook

帮助表示赞赏。

干杯

2 个答案:

答案 0 :(得分:2)

有,看看Hadoop中的ChainMapper类。它允许您将一个映射器的映射输出直接转发到下一个映射器的输入而不会访问磁盘。

答案 1 :(得分:1)

Oozie是一个描述作业工作流程的系统,其中该作业可能包含一组map reduce作业,pig脚本,fs操作等,并支持数据流的fork和join。

然而,它不允许您将一个MR作业的输入作为另一个MR输入的输入 - oozie中的map-reduce操作仍然需要某种类型的输出格式,通常是基于的文件,因此您的输出来自在作业2处理之前,作业1仍将通过HDFS序列化。

oozie文档有一个包含多个MR作业的示例,包括一个fork:

http://oozie.apache.org/docs/3.2.0-incubating/WorkflowFunctionalSpec.html#Appendix_B_Workflow_Examples