【问题标题】:Oozie: propagate-configuration does not workOozie:传播配置不起作用
【发布时间】:2015-03-22 12:57:50
【问题描述】:

我可能遗漏了一些东西,因为 propagate-configuration 似乎对我不起作用。

我有一个基本工作流base.xml,配置如下:

<global>
    <job-tracker>${jobTracker}</job-tracker>
    <name-node>${nameNode}</name-node>
    <job-xml>application-config.xml</job-xml>   
    <configuration>
        <property>
            <name>paths.prefix.metadata</name>
            <value>${nameNode}${fimProcessingMetadataPath}</value>
        </property>
    </configuration>
</global>

在这个文件中,我定义了这样的子工作流程:

<action name="srv_a">
    <sub-workflow>
        <app-path>${nameNode}${workflowPath}/a.xml</app-path>
        <propagate-configuration />
    </sub-workflow>
    <ok to="b" />
    <error to="kill" />
</action>
<action name="srv_b">
    <sub-workflow>
        <app-path>${nameNode}${workflowPath}/b.xml</app-path>
        <propagate-configuration />
    </sub-workflow>
    <ok to="c" />
    <error to="kill" />
</action>
// Here there are many sub-workflows like these.

但是在我的代码中,我找不到 paths.prefix.metadata 属性 - 它无法找到它。

java.lang.IllegalArgumentException: Mandatory property property is not set.     
Please provide paths.prefix.metadata

如果我在a.xml 中再次将其定义为它自己的属性,我可以访问它。

那么,如何将此变量从 base.xml 定义传播到子工作流?据我了解documentation

propagate-configuration 标志(如果存在)指示应将工作流作业配置传播到子工作流。

但它似乎没有到达子工作流程。为什么?全局配置不传播到子子工作流不是预期的行为吗?

【问题讨论】:

    标签: hadoop configuration mapreduce oozie orchestration


    【解决方案1】:

    我遇到了同样的问题。经过一番加扰,我发现可行的解决方法是在基本 xml 的子工作流中添加一个配置部分。配置部分中的属性将被传递到子工作流程,例如:

    ...
    <action name="srv_b">
      <sub-workflow>
        <app-path>a.xml</app-path>
        <propagate-configuration />
        <configuration>
          <property>
            <name>paths.prefix.metadata</name>
            <value>${nameNode}${fimProcessingMetadataPath}</value>
          </property>
          ...
        </configuration>
      </sub-workflow>
    </action>
    

    【讨论】:

    • 好的,这在 Oozie 文档中似乎并不明显。不过,这是对我最终完成的工作的改进。
    【解决方案2】:

    仅适用于传递 job.properties 文件。 要将全局部分的变量传递给子工作流,我们需要在 子工作流的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 2017-11-08
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多