【问题标题】:how can i write a oozie job depending on the success of the other job?我如何根据另一份工作的成功编写一份 oozie 工作?
【发布时间】:2017-03-13 22:18:17
【问题描述】:

我的场景:我有一个通过 shell 脚本运行的 spark 提交,这个 spark-job 会将 7 个表从 oracle 拉到 hive。我有另一个脚本,它将根据从 oracle 导入的数据生成 .dat 文件。

我的问题是:在 oozie 中是否有任何机会,如果第一个作业成功,则只有第二个作业应该运行。如果您对问题有任何疑问,请询问。

提前致谢

【问题讨论】:

    标签: shell hadoop apache-spark oozie oozie-coordinator


    【解决方案1】:

    您可以在 Oozie 中建立依赖关系。请在下面找到伪代码:

    <workflow-app xmlns="uri:oozie:workflow:0.5" name="MYsimpleWF">
     <global>
      ...
    </global>  
    <action name=" ShellAction ">
        <shell>
            ...
            <exec>${EXEC}</exec>
            <argument>A</argument>
            <argument>B</argument>
            <file>${EXEC}#${EXEC}</file> 
        </shell>
    <ok to="SecondJOB"/>
    <error to="fail"/>
    </action>
    <action name="SecondJOB">
    <shell xmlns="uri:oozie:shell-action:0.2">
      ...
    </shell>
    <ok to="success"/>
    <error to="fail"/>
    </action>
    <end name="done"/>
    </workflow-app>
    

    【讨论】:

    • 以上答案如何满足依赖?如果第一个作业仍然失败,它会尝试运行第二个作业吗??
    • 在代码中
    • 如果第一个作业失败,它不会触发第二个作业,它会出来。如果成功,它将继续第二份工作。
    • 好的,但是有什么我可以使用一些开关条件运行的吗?
    • Oozie 创建了一个 DAG。从一个街区到下一个街区的唯一方法是@Arvind Kumar 的描述。 Oozie 确实有一个 switch 语句。你可以在这里找到它:oozie.apache.org/docs/4.2.0/WorkflowFunctionalSpec
    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2015-12-11
    • 2015-01-08
    • 2016-09-29
    • 2018-07-28
    • 1970-01-01
    相关资源
    最近更新 更多