【问题标题】:Setting coordinator names in Oozie bundle from bundle.properties从 bundle.properties 在 Oozie 包中设置协调器名称
【发布时间】:2018-02-27 19:18:11
【问题描述】:

我正在使用 Oozie 包来管理两个协调器(目前)。它们是相同的过程,但针对两个不同的客户端。我在启动bundle.xml 时调用的bundle.properties 文件中定义了客户端名称。我正在尝试使用客户端名称来命名每个协调器,但我不断看到以下错误的变体:

错误:E0701:E0701:XML 架构错误,cvc-pattern-valid:值 'Daily_job_#{client1}' 就模式而言不是方面有效的 '(a-zA-Z*){1,39}' 用于类型 'IDENTIFIER'

我一直在使用 ${} 来访问变量名 vs #{} 基于这里的这篇文章:Renaming Oozie coordinator dynamically. 我似乎能够从 bundle.properties 访问变量作为属性就好了不是名字。

这是我在bundle.xml 中尝试过的:

<coordinator name='Daily_job_#{client1}' >
...
      <property>
          <name>client</name>
          <value>${client1}</value>
      </property>

</coordinator>

<coordinator name='Daily_job_${client1}' >
...
</coordinator>

bundle.properties

client1=firstclientname
client2=secondclientname

我可以在协调器和工作流的属性中访问客户端的值,但我似乎无法根据属性命名协调器。谁能帮我?谢谢!

【问题讨论】:

    标签: bundle oozie oozie-coordinator


    【解决方案1】:

    看到您收到该特定错误似乎表明名称恰好是一个包:IDENTIFIER 类型不符合 Oozie 开发人员定义的架构。

    这意味着您的 XML 正在针对架构进行格式良好的验证,并且 bundle:IDENTIFIER 将针对一个正则表达式进行检查,该正则表达式只允许名称中包含至少 1 个字符的字母数字、破折号和下划线40 个字符。

    <xs:simpleType name="IDENTIFIER">
        <xs:restriction base="xs:string">
            <xs:pattern value="([a-zA-Z]([\-_a-zA-Z0-9])*){1,39})"/>
        </xs:restriction>
    </xs:simpleType>
    

    格式正确是一个 XML 预处理步骤,可能会限制您的替换字符,因为 $ # { } 不包含在正则表达式中。

    https://github.com/apache/oozie/blob/master/client/src/main/resources/oozie-bundle-0.2.xsd

    【讨论】:

    • 感谢您的链接。似乎这意味着它无法读取变量?我希望有某种方法可以传递我尚未确定的变量,但也许情况并非如此。我能够使用 ${} 格式来标记 coordinator.xml 中的协调器,所以我认为这也可以转换为捆绑包。
    • 该链接指向最新 Oozie Bundle XML 的架构。我包含它是因为它显示了它验证的内容。如果您注意到,在较新的版本中,模式已更新为接受任何字符串,而不是 bundle:IDENTIFIER 简单类型。这将使您通过格式良好的验证。
    【解决方案2】:

    我使用的是 Oozie 捆绑模式 0.1:xmlns='uri:oozie:bundle:0.1',并将其更改为 0.2:xmlns='uri:oozie:bundle:0.2' 现在可以使用。我也在使用 ${} 的第二个变体,所以在 bundle.xml:

    <coordinator name='Daily_job_${client1}' >
    ...
    </coordinator>
    

    是要使用的那个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多