在oozie中完成一个工作流后,是否有一种方法可以发出和外部调用。阅读一些文档似乎是可能的(oozie可以对操作开始/结束/失败事件和工作流结束/失败事件发出http回调通知。)http://archive.cloudera.com/cdh/3/oozie/workflowfunctionalspec.html但不知道如何做到这一点,它可以是一个外部api调用回调。谢谢
6gpjuf901#
再往下看文件,第5节外部api调用是什么意思?它只能执行http get—因此,如果您配置一个servlet端点或类似的东西,以便在访问url时触发外部api调用,那么您应该可以执行几乎任何您想要的操作。然而,值得注意的是,文件中说:oozie将尽最大努力传递通知,如果失败,它将在放弃之前以预先配置的间隔重试预先配置的通知次数。
5sxhfpxr2#
有两个属性可以添加到oozie job.properties中。变量$jobid、$status和$nodename在运行时被替换。
1. oozie.wf.workflow.notification.url=http://yourserver.com/some/path/$jobId/$status
这将给您一个http get调用http://yourserver.com/some/path/ 例如,每个状态更改的工作级别
myhost.softlayer.com - - [19/Feb/2016 10:35:02] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/RUNNING HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:35] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/SUCCEEDED HTTP/1.1" 200 -
这一个给你的oozie工作步骤之间更详细的过渡
2. oozie.wf.action.notification.url=http://yourserver.com/some/path/$jobId/$nodeName/$status
服务器端输出示例:
myhost.softlayer.com - - [19/Feb/2016 10:35:02] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/:start:/T:ReadConfig HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:03] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/ReadConfig/S:RUNNING HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:09] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/ReadConfig/T:CheckStep HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:10] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/sqoop-table-import/S:RUNNING HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:10] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/CheckStep/T:sqoop-table-import HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:29] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/javaStatsReporting/S:RUNNING HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:29] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/sqoop-table-import/T:javaStatsReporting HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:35] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/end/T:null HTTP/1.1" 200 - myhost.softlayer.com - - [19/Feb/2016 10:35:35] "GET /dbgen/lineitem2/0000050-151213000221460-oozie-oozi-W/javaStatsReporting/T:end HTTP/1.1" 200 -
2条答案
按热度按时间6gpjuf901#
再往下看文件,第5节
外部api调用是什么意思?它只能执行http get—因此,如果您配置一个servlet端点或类似的东西,以便在访问url时触发外部api调用,那么您应该可以执行几乎任何您想要的操作。
然而,值得注意的是,文件中说:
oozie将尽最大努力传递通知,如果失败,它将在放弃之前以预先配置的间隔重试预先配置的通知次数。
5sxhfpxr2#
有两个属性可以添加到oozie job.properties中。变量$jobid、$status和$nodename在运行时被替换。
这将给您一个http get调用http://yourserver.com/some/path/ 例如,每个状态更改的工作级别
这一个给你的oozie工作步骤之间更详细的过渡
服务器端输出示例: