oozie作业完成后的HTTP回调

时间:2013-02-02 06:37:50

标签: hadoop workflow oozie

一旦在Oozie中完成一个worflow,是否有办法进行外部调用。阅读一些文档似乎是可能的。 (Oozie可以在操作开始/结束/失败事件和工作流结束/失败事件上发出HTTP回调通知。)

http://archive.cloudera.com/cdh/3/oozie/WorkflowFunctionalSpec.html

但不知道该怎么做,可以在回调时进行外部api调用。

由于

2 个答案:

答案 0 :(得分:0)

在文档的后面section 5

外部API调用是什么意思?它只能执行HTTP get - 所以如果你配置一个servlet端点或类似的东西,当访问URL时触发外部API调用,那么你应该能够做任何你想做的事情。

然而值得注意的是,文档说:

  

Oozie将尽最大努力发送通知,如果失败,它会在放弃之前以预先配置的时间间隔重新预先配置通知次数。

答案 1 :(得分:0)

您可以向oozie job.properties添加两个属性。变量$ jobId,$ status和$ nodeName在运行时被替换。

1. oozie.wf.workflow.notification.url=http://yourserver.com/some/path/$jobId/$status

这将为您在每个状态更改的作业级别http://yourserver.com/some/path/进行HTTP GET调用,例如

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 -