hadoop - Oozie:传播配置不起作用

标签 hadoop configuration mapreduce oozie orchestration

我可能遗漏了一些东西,因为 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 :

The propagate-configuration flag, if present, indicates that the workflow job configuration should be propagated to the child workflow.

但是好像没有到达子工作流。为什么?全局配置不会传播到子子工作流,这不是预期的行为吗?

最佳答案

我遇到了同样的问题。经过一些困惑之后,我发现工作的解决方法是在基本 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>

关于hadoop - Oozie:传播配置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28110718/

相关文章:

hadoop - 如何以 Unix 用户身份运行 Apache Airflow DAG

node.js - 如何在加载时配置 SPA?

testing - Spring Data Neo4j 4.0.0.M1 测试配置

web-services - WCF 在查看 MyService.svc 时使用计算机名而不是域名?wsdl

java - 使用快速数据顺序错误进行mapreduce

hadoop - 错误1070:使用导入无法解析CqlStorage:

sql - 像另一个一样创建一个配置单元表,但按键分区

hadoop - 无法连接到 sparkSQL

sorting - 我们真的需要在 MapReduce 框架中进行排序吗?

hadoop - Pig map 减少作业以将值置于适当的范围内