Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 将可选属性从主oozie工作流传递到子工作流_Hadoop_Oozie_Oozie Workflow - Fatal编程技术网

Hadoop 将可选属性从主oozie工作流传递到子工作流

Hadoop 将可选属性从主oozie工作流传递到子工作流,hadoop,oozie,oozie-workflow,Hadoop,Oozie,Oozie Workflow,我有一个HDFS_文件路径或属性,需要从workflow-1传递到common_子工作流 我还有workflow-2,它没有那个属性或HDFS\u文件路径。但是workflow-2调用公共子工作流 在common_子工作流中,我使用${HDFS_file_path}获取属性值 当workflow-1调用common_子工作流时,它可以正常工作,但当workflow-2调用common_子工作流时,它会失败,因为workflow-2中不存在HDFS_文件_路径 有没有办法去 读取动态属性(如果存在

我有一个HDFS_文件路径或属性,需要从workflow-1传递到common_子工作流

我还有workflow-2,它没有那个属性或HDFS\u文件路径。但是workflow-2调用公共子工作流

在common_子工作流中,我使用${HDFS_file_path}获取属性值

当workflow-1调用common_子工作流时,它可以正常工作,但当workflow-2调用common_子工作流时,它会失败,因为workflow-2中不存在HDFS_文件_路径

有没有办法去

  • 读取动态属性(如果存在),或
  • 如果变量不存在,则设置一些默认值(null或空)
  • 
    输入目录
    输出目录
    输出目录
    ...
    

    
    输入目录
    输出目录
    输出目录
    ...
    

    共享您的工作流和子工作流共享您的工作流和子工作流
    <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>