我有一个HDFS_file_path或属性,需要从工作流1传递到common_subworkflow。
我也有没有该属性或HDFS_file_path的工作流程2。但是工作流程2调用common_subworkflow。
在common_subworkflow中,我使用$ {HDFS_file_path}获取属性值。
由于工作流2中不存在HDFS_file_path,因此当工作流1调用common_subworkflow时工作正常,但当工作流2调用common_subworkflow时失败。
有什么办法
答案 0 :(得分:1)
<workflow-app name='hello-wf' xmlns="uri:oozie:workflow:0.4">
<parameters>
<property>
<name>inputDir</name>
</property>
<property>
<name>outputDir</name>
<value>out-dir</value>
</property>
</parameters>
...
<action name='firstjob'>
<map-reduce>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.mapper.class</name>
<value>com.foo.FirstMapper</value>
</property>
<property>
<name>mapred.reducer.class</name>
<value>com.foo.FirstReducer</value>
</property>
<property>
<name>mapred.input.dir</name>
<value>${inputDir}</value>
</property>
<property>
<name>mapred.output.dir</name>
<value>${outputDir}</value>
</property>
</configuration>
</map-reduce>
<ok to='secondjob'/>
<error to='killcleanup'/>
</action>
...
</workflow-app>
在上面的示例中,如果未指定inputDir,则Oozie将打印错误消息,而不是提交作业。如果未指定= outputDir =,则Oozie将使用默认值out-dir。