首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oozie工作流任务之间传递数据

如何在oozie工作流任务之间传递数据
EN

Stack Overflow用户
提问于 2015-07-10 13:19:34
回答 1查看 2.1K关注 0票数 0

Oozie有一组丰富的指令来描述任务之间期望的控制流。它有什么可以帮助在这些任务之间传递数据的吗?还是传递数据是完全留给用户的练习?

更新:我使用shell操作来调用星星之火,所以我需要一个足够通用的解决方案来包含这个用例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-10 14:42:43

为了在Oozie工作流任务之间传递数据,需要将workflow2的输入定义为workflow1的输出。例如:

代码语言:javascript
复制
<workflow-app xmlns='uri:oozie:workflow:0.1' name='demo-wf'>
  <start to="workflow1" />
    <action name="workflow1">
      <map-reduce>
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
          <property>
            <name>mapred.input.dir</name>
            <value>${workflow1_Input}</value>
          </property>
          <property>
            <name>mapred.output.dir</name>
            <value>${workflow1_Output}</value>
          </property>
        </configuration>
      </map-reduce>
      <ok to="workflow2" />
      <error to="fail" />
    </action>
    <action name="workflow2">
      <map-reduce>
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
          <property>
            <name>mapred.input.dir</name>
            <value>${workflow1_Output}</value>
          </property>
          <property>
            <name>mapred.output.dir</name>
            <value>${workflow2_Output}</value>
          </property>
        </configuration>
      </map-reduce>
      <ok to="done" />
      <error to="fail" />
    </action>
</workflow-app>

注意,我在地图上留下了一堆细节--减少作业,只显示输入和输出。设置属性文件时,可以定义输入和输出参数。另一件需要注意的事情是,MapReduce将忽略任何以下划线_作为输入的内容。因此,当第一个MapReduce作业完成时,它将有一个_SUCCESS文件和一个_log目录,这将被忽略为第二个操作的输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31341837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档