java - 如何在Oozie中为多个工作流指定集中位置

标签 java amazon-web-services hadoop oozie oozie-workflow

我有10多个oozie工作流程。每个工作流.xml,coordinator.properties和xml以及lib文件夹都位于单独的文件夹中。所有工作流都有一些大小约为6mb的通用jar,我必须在每个lib文件夹中复制相同的jar。您能否告诉我最好的解决方案,使其具有一个通用的jar位置,这样我就不需要为Java Action 在每个工作流文件夹中复制相同的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>

最佳答案

在oozie操作中添加<file>标签。每个 Action 都引用相同的文件。
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路径之外,您还可以使用来自您工作流.xml的文件标签中该jar的相对路径来添加文件。
示例:../../your-report-generator.jar

关于java - 如何在Oozie中为多个工作流指定集中位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62577927/

相关文章:

hadoop - Parquet 行组比文件中预期的太多

java - Jersey 与 liferay、Servlet 到 portlet 转换

java - BeanProcessor 部分工作

java - 使用sql查询方法保存图像

amazon-web-services - Kubernetes 集群迁移

hadoop - Cloudera蜂蜡服务器和 hive 服务器

hadoop - 启动 Hive 时出错 : java. lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf

java - Android - 如何高效地在 TextView 中加载大量文本?

php - 处理后从 SQS 队列中删除消息

postgresql - 如何启用将所有查询记录到 postgreSQL AWS RDS 实例?