【问题标题】:Updating global property in oozie sub workflow在 oozie 子工作流中更新全局属性
【发布时间】:2016-04-09 15:37:13
【问题描述】:

是否可以覆盖子工作流中的全局属性值?

在 main/workflow.xml 中

    <workflow-app name="test-wf" xmlns="uri:oozie:workflow:0.4">

         <global>
              <configuration>
                 <property>
                    <name>global-prop</name>
                    <value>global-val</value>
                 </property>
              </configuration>
         <global>

    <start to="start" />
       <action name="start">
          <sub-workflow>
             <app-path>${wf:appPath()}/start</app-path>
             ....
             ...
    <decision name="wf-decision">
       <switch>
           <case to="wf-A">${global-prop}</case> 
<!-- can the value of global-prop be updated in main/start/workflow.xml, ie start subworkflow -->
           <default to="end" />
        </switch>
    </decision>

当工作流到达决策节点时,它的路径取决于全局概率。我希望 global-prop 值取决于启动子工作流的结果。

【问题讨论】:

    标签: workflow oozie oozie-coordinator


    【解决方案1】:

    决策节点...取决于全局属性。我想要全局道具 值取决于子工作流的结果

    ¤ 评论 #1:从一般原则来看,让决策同时取决于结果和全局(和常量)属性会更有意义。使用布尔 EL 表达式,例如 (参见一些示例 there

    ¤ 评论 #2:Oozie documentationproperties 作为 Hadoop 的缩写之间存在很多混淆属性,传输到 YARN 作业;和 Workflow 属性 也称为 parameters,它们是 EL 变量(在 EL 文档中再次称为 properties,该死)用于定义属性/参数/等的值。但不会传输到 YARN 作业。

    您使用“global-prop”的方式,应该在&lt;parameters&gt; 部分而不是&lt;global&gt; 中定义。

    ¤ 注释 #3:AFAIK Oozie 参数和属性是不可变的;您可以只设置一次它们的值,使用...

    • parameters> 硬编码字符串字面量
    • properties> 文字和/或参数和/或 EL 函数

    还有一个范围问题——即当一个“全局”属性和一个“本地”属性(在子工作流的一个动作中定义,同样来自字符串/参数/EL fct) 具有相同的确切名称,“本地”优先。

    ¤ 评论 #4:有一种方法可以从 Java / Pig / Shell 操作中检索一些自定义状态信息,使用 &lt;capture-output&gt; 过程 (参见经典的 example在 Oozie 文档中) 但您只能从 same 工作流程中检索它。对于在具有不同 ID 的单独上下文中执行的子工作流,您将不走运。

    ¤ 太好了……当其他一切都失败时,唯一的希望就是回到基础。听说过 Pig 在完成时创建的名为 _SUCCESS 的空 HDFS 文件,以便可以自动触发进一步的处理(例如通过 oozie 协调器)?

    如果子工作流以某种方式创建了具有预定义名称的 HDFS 文件,则决策可以使用 HDFS EL function 来检查该文件是否已创建:

     <case to="Happy">${fs:exists(concat(wf:conf("status.dir"),"/__HAPPY"))}</case> 
    

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多