从documentation开始,config-default.xml
必须显示在工作流工作区中。
- /workflow.xml
- /config-default.xml
|
- /lib/ (*.jar;*.so)
我已创建自定义Oozie操作,并尝试将retry-max
和retry-interval
的默认值添加到所有自定义操作。
所以我的workflow.xml
将如下所示:
<workflow-app xmlns="uri:oozie:workflow:0.3" name="wf-name">
<action name="custom-action" retry-max="${default_retry_max}" retry-interval="${default_retry_interval}">
</action>
config-default.xml
文件包含default_retry_max
和default_retry_interval
的值。
将config-default.xml
放入每个工作流工作区。这样可行,但问题是到处都会有这个文件。
设置oozie.service.LiteWorkflowStoreService.user.retry.max
和oozie.service.LiteWorkflowStoreService.user.retry.inteval
也有效,但会影响所有操作类型。
我也看了Global Configurations,但它没有解决这个问题。
我认为应该有一种方法可以将config-default.xml
放到oozie.libpath
,只有那些使用此libpath
的工作流会受到影响。
答案 0 :(得分:1)
AFAIK,遗憾的是没有干净的方法。
您可能对最近创建的功能请求感兴趣:https://issues.apache.org/jira/browse/OOZIE-3179
唯一对我有用的是使用shell步骤开始工作流程,该步骤使用存储在hdfs中的脚本。此脚本包含集中配置。该脚本如下所示:
#!/bin/sh
echo "oozie.use.system.libpath=true"
echo "hbase_zookeeper_quorum=localhost"
.. etc other system or custom variables ..
是的,脚本只是将变量打印到stdout。 让我们说shell步骤操作被称为&#34; global_config&#34;。以下所有步骤都可以使用以下语法获取变量:
${wf:actionData('global_config')['hbase_zookeeper_quorum']}
... HTH