分享

Oozie工作流之间的依赖怎么配置

B任务依赖A的完成,A任务要特别写一个输出数据到某个文件路径的操作吗?

已有(7)人评论

跳转到指定楼层
阿飞 发表于 2019-5-22 12:41:19
这个不是必须的,但是在oozie中可以自定义输出。并不是非要输出到文件。比如下
使用oozie调度脚本

   <workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf">
                                            <start to="shell-node"/>
                                            <action name="shell-node">
                                                <shell xmlns="uri:oozie:shell-action:0.2">
                                                    <job-tracker>${jobTracker}</job-tracker>
                                                    <name-node>${nameNode}</name-node>
                                                    <configuration>
                                                        <property>
                                                            <name>mapred.job.queue.name</name>
                                                            <value>${queueName}</value>
                                                        </property>
                                                    </configuration>
                                                    <exec>${EXEC}</exec>
                                                    <!-- <argument>my_output=Hello Oozie</argument> -->
                                                    <file>/user/admin/oozie-apps/shell/${EXEC}#${EXEC}</file>

                                                    <capture-output/>
                                                </shell>
                                                <ok to="end"/>
                                                <error to="fail"/>
                                            </action>
                                            <decision name="check-output">
                                                <switch>
                                                    <case to="end">
                                                        ${wf:actionData('shell-node')['my_output'] eq 'Hello Oozie'}
                                                    </case>
                                                    <default to="fail-output"/>
                                                </switch>
                                            </decision>
                                            <kill name="fail">
                                                <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
                                            </kill>
                                            <kill name="fail-output">
                                                <message>Incorrect output, expected [Hello Oozie] but was [${wf:actionData('shell-node')['my_output']}]</message>
                                            </kill>
                                            <end name="end"/>
                                        </workflow-app>



老铁可以参考文章
Oozie案例分析及配置文件说明
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27202


下面是一套视频:
链接: https://pan.baidu.com/s/1nBhXEJSR1uhKsvq9q8uGKA 提取码: d5br


回复

使用道具 举报

wx_fZUnUQ28 发表于 2019-5-23 10:26:52
阿飞 发表于 2019-5-22 12:41
这个不是必须的,但是在oozie中可以自定义输出。并不是非要输出到文件。比如下
使用oozie调度脚本

谢谢。
我是有一个表的数据会多次复用,不可能每个工作流都把这个数据程序放到不同工作流去运行。
我是想workflow能不能依赖另外一个workflow的运行状态
回复

使用道具 举报

s060403072 发表于 2019-5-23 11:46:34
wx_fZUnUQ28 发表于 2019-5-23 10:26
谢谢。
我是有一个表的数据会多次复用,不可能每个工作流都把这个数据程序放到不同工作流去运行。
我是 ...

没有理解你的意思。
一个数据多次使用,跟工作流没有关系的。
oozie只是控制流程,不是控制数据。具体业务逻辑实现,需要读取数据的。这个数据无论用几次都可以的。
回复

使用道具 举报

wx_fZUnUQ28 发表于 2019-5-24 10:40:52
s060403072 发表于 2019-5-23 11:46
没有理解你的意思。
一个数据多次使用,跟工作流没有关系的。
oozie只是控制流程,不是控制数据。具体 ...

对。不过我要依赖这个数据的生成程序。比如A是基础数据,每天定时12点启动,B/C/D程序都要等A程序运行完才能启动。但是这几个不能都陪在一个工作流里。怎么来配置依赖,可以让B/C/D在A完成之后才启动
回复

使用道具 举报

杰仕人生 发表于 2019-6-3 14:37:59
dataset,in,out
回复

使用道具 举报

杰仕人生 发表于 2019-6-3 14:39:16
dataset,利用coordinator的input-event
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条