oozie 变量无法解析
Oozie variable cannot be resolved
在决策节点中传递变量时遇到问题。该参数在全局配置下声明
<global>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${yarnQueueName}</value>
</property>
<property>
<name>currentDate</name>
<value>${replaceAll(timestamp(), "T(\d{2}):(\d{2})Z", "")}</value>
</property>
</configuration>
</global>
但是在Decision节点下使用“currentDate”时,解析失败
<decision name="checkFile">
<switch>
<case to="an-email">
${fs:exists('/user/svc-pmdi/tmp/delta_Combination_'+currentDate+'.csv')}
</case>
<default to="end"/>
</switch>
</decision>
我得到的错误
错误代码:EL_ERROR
错误消息:变量 [currentDate] 无法解析
我的第一个 oozie worflow..可能犯了愚蠢的错误。
请帮帮我。
您不应在全局配置块中为 workflow.xml 声明参数。
在您的情况下,您可以进行内联,而且您必须将“+”更改为 concat()
<decision name="checkFile">
<switch>
<case to="an-email">
${fs:exists(concat(concat('/user/svc-pmdi/tmp/delta_Combination_', replaceAll(timestamp(), "T(\d{2}):(\d{2})Z", "")), '.csv'))}
</case>
<default to="end"/>
</switch>
</decision>
您可以创建自定义参数以在 workflow.xml 开头的块 中的 workflow.xml 中使用它们。但是那里只能存储静态字符串。 Link 到文档:https://oozie.apache.org/docs/4.3.1/WorkflowFunctionalSpec.html#a4_Parameterization_of_Workflows
在决策节点中传递变量时遇到问题。该参数在全局配置下声明
<global>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${yarnQueueName}</value>
</property>
<property>
<name>currentDate</name>
<value>${replaceAll(timestamp(), "T(\d{2}):(\d{2})Z", "")}</value>
</property>
</configuration>
</global>
但是在Decision节点下使用“currentDate”时,解析失败
<decision name="checkFile">
<switch>
<case to="an-email">
${fs:exists('/user/svc-pmdi/tmp/delta_Combination_'+currentDate+'.csv')}
</case>
<default to="end"/>
</switch>
</decision>
我得到的错误 错误代码:EL_ERROR 错误消息:变量 [currentDate] 无法解析
我的第一个 oozie worflow..可能犯了愚蠢的错误。 请帮帮我。
您不应在全局配置块中为 workflow.xml 声明参数。 在您的情况下,您可以进行内联,而且您必须将“+”更改为 concat()
<decision name="checkFile">
<switch>
<case to="an-email">
${fs:exists(concat(concat('/user/svc-pmdi/tmp/delta_Combination_', replaceAll(timestamp(), "T(\d{2}):(\d{2})Z", "")), '.csv'))}
</case>
<default to="end"/>
</switch>
</decision>
您可以创建自定义参数以在 workflow.xml 开头的块