【问题标题】:Running multiple mapreduce jobs with oozie?使用 oozie 运行多个 mapreduce 作业?
【发布时间】:2012-11-13 21:39:01
【问题描述】:

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

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

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

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

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

帮助表示赞赏。

干杯

【问题讨论】:

    标签: hadoop oozie


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 感谢您的信息。我想知道是否有任何技术可以在不使用磁盘 i/o 的情况下将数据从一个 mr 作业传递到另一个作业?
      猜你喜欢
      • 1970-01-01
      • 2013-12-04
      • 2023-03-21
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多