如何在oozie中为多个工作流指向集中位置
How to point centralized location for multiple workflows in oozie
我有超过 10 个 oozie 工作流程。每个 workflow.xml、coordinator.properties 和 xml 加上 lib 文件夹都在一个单独的文件夹中。所有工作流程都有一些大约 6mb 大小的通用 jar,我必须在每个 lib 文件夹中复制相同的 jar。你能告诉我最好的解决方案有一个共同的 jar 位置,这样我就不需要在每个工作流文件夹中复制相同的 jar 来执行 java 操作。
<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>
在您的 oozie 操作中添加一个 <file>
标签。为每个操作引用相同的文件。
见 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 路径之外,您还可以在文件标记中使用 workflow.xml 到该 jar 的相对路径来添加文件。
示例:../../your-report-generator.jar
我有超过 10 个 oozie 工作流程。每个 workflow.xml、coordinator.properties 和 xml 加上 lib 文件夹都在一个单独的文件夹中。所有工作流程都有一些大约 6mb 大小的通用 jar,我必须在每个 lib 文件夹中复制相同的 jar。你能告诉我最好的解决方案有一个共同的 jar 位置,这样我就不需要在每个工作流文件夹中复制相同的 jar 来执行 java 操作。
<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>
在您的 oozie 操作中添加一个 <file>
标签。为每个操作引用相同的文件。
见 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 路径之外,您还可以在文件标记中使用 workflow.xml 到该 jar 的相对路径来添加文件。
示例:../../your-report-generator.jar