我尝试在oozie决策节点中使用dirSize()
。但它不起作用。
当我在决策节点中使用${fs:dirSize(InputDir) gt 10 * KB}
时。 oozie工作流程状态将移至失败状态,并且不会显示错误。
请在下方找到工作流程中的代码段。
<action name="L1_check" cred="hcat_creds">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<script>l1_check_code.sql</script>
<param>PI_DB=${PI_DB}</param>
<param>PRD_DB=${PRD_DB}</param>
<param>PROMO_START_DATE=${PROMO_START_DATE}</param>
<param>PROMO_END_DATE=${PROMO_END_DATE}</param>
</hive>
<ok to="decision-node" />
<error to="fail" />
</action>
<decision name="decision-node">
<switch>
<case to="L1_exists">
${fs:dirSize(InputDir) gt 10 * KB}
</case>
<default to="fail"/>
</switch>
</decision>
InputDir是属性文件中定义的,路径存在。
第一个动作L1_check执行并转换到决策节点。然后工作流程状态更改为“失败”状态。
使用函数的方式有错误吗?如果是,应该使用什么功能?
还有一种方法可以给出一个带有参数和字符串组合的路径 例如:dirSize(InputDir / l1_check) 其中InputDir是参数,l1_check是静态名称