Hadoop 如何使用EL表达式创建变量,以便在oozie工作流的所有操作中使用?
我想创建一个变量,该变量应可用于Oozie工作流中的所有操作。我试图创建它,如下所示。但EL表达式未得到计算,导致当前值与EL表达式本身一样可变。有人能解释一下吗Hadoop 如何使用EL表达式创建变量,以便在oozie工作流的所有操作中使用?,hadoop,el,oozie,Hadoop,El,Oozie,我想创建一个变量,该变量应可用于Oozie工作流中的所有操作。我试图创建它,如下所示。但EL表达式未得到计算,导致当前值与EL表达式本身一样可变。有人能解释一下吗 <workflow-app xmlns="uri:oozie:workflow:0.4" name="no-op-wf"> <parameters> <property> <name>current_ts</name> <value&
<workflow-app xmlns="uri:oozie:workflow:0.4" name="no-op-wf">
<parameters>
<property>
<name>current_ts</name>
<value>${replaceAll((replaceAll((replaceAll((timestamp()),"-","")),"T","_")),":","")}</value>
</property>
</parameters>
<start to="test"/>
<kill name="test">
<!--message Just to show that this expression works if used here>Timestamp - [${replaceAll((replaceAll((replaceAll((timestamp()),"-","")),"T","_")),":","")}</message-->
<message>Timestamp - ${current_ts}</message> <!-- this will print expression but not evaluate it -->
</kill>
<end name="end"/>
</workflow-app>
当前的
${replaceAll((replaceAll((timestamp()),“-”,“),“T”,“u”),“:”,“)}
时间戳-${current\u ts}
中提到:
EL表达式可用于动作和决策节点的配置值。它们可以在XML属性值以及XML元素和属性值中使用
它们不能在XML元素和属性名称中使用。它们不能用在节点的名称中,也不能用在节点的转换元素中
但是您可以在协调器中使用它如果我在工作流中创建一个全局->配置->属性,并在wf的其他操作中引用它,那么属性中的EL表达式将不会得到计算 作为一种解决方法,我将wf包装为子wf,并在父wf中创建了global->configuation->属性,然后将其传递给子wf。通过这种变通方法,EL表达式得到了计算 父WF:
<workflow-app xmlns="uri:oozie:workflow:0.4" name="main-wf">
<global>
<configuration>
<property>
<name>run_ts</name>
<value>${replaceAll((replaceAll((replaceAll((timestamp()),"-","")),"T","_")),":","")}</value>
</property>
</configuration>
</global>
<action name="tbl-subwf">
<sub-workflow>
<app-path>${AppPath}</app-path>
<propagate-configuration/>
</sub-workflow>
<ok to="join-node"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Sub workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
跑步
${replaceAll((replaceAll((timestamp()),“-”,“),“T”,“u”),“:”,“)}
${AppPath}
子工作流失败,错误消息[${wf:errorMessage(wf:lastErrorNode())}]
您是否可以尝试使用全局或配置标记,以便属性在整个工作流中都可用。xml您可能会发现post(第2节)对于参数和属性之间的差异非常有用。。。