代码之家  ›  专栏  ›  技术社区  ›  Kalpesh

如何在oozie中为多个工作流指定集中位置

  •  0
  • Kalpesh  · 技术社区  · 4 年前

    我有10多个oozie工作流。每个工作流.xml, 协调员.属性xml plus lib文件夹位于单独的文件夹中。所有的工作流都有一些6mb大小的普通jar,我必须在每个lib文件夹中复制相同的jar。您能告诉我最好的解决方案是使用一个公共jar位置,这样我就不需要在每个工作流文件夹中为java操作复制相同的jar了。

    <action name="aggr_stage" retry-max="3" retry-interval="1">
        <java>
            <main-class>com.*.*.ReportGenerator</main-class>
            <arg>${reprocessing}</arg>
            <arg>${timeZone}</arg>
        </java>
        <ok to="notifyJobSuccess" />
        <error to="notifyJobFailure" />
    </action>
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   Snigdhajyoti    4 年前

    添加 <file> 标记你的oozie动作。为每个操作引用相同的文件。
    看见 oozie docs

    <action name="aggr_stage" retry-max="3" retry-interval="1">
        <java>
            <main-class>com.*.*.ReportGenerator</main-class>
            <arg>${reprocessing}</arg>
            <arg>${timeZone}</arg>
            <file>hdfs://<namenode>:<port>/<path-to-your-jar>/your-report-generator.jar</file>
        </java>
        <ok to="notifyJobSuccess" />
        <error to="notifyJobFailure" />
    </action>
    

    除了使用完整的hdfs路径,您还可以使用从服务器到jar的相对路径工作流.xml在文件标签中添加文件。
    例子: ../../your-report-generator.jar