【问题标题】:Shortening Oozie workflows缩短 Oozie 工作流程
【发布时间】:2014-06-24 05:48:59
【问题描述】:

我正在使用 Oozie 将一组 MapReduce 作业串在一起。由于需要大量属性,每个作业的单个存根大约有 400 行长。这些属性中的大多数在作业之间是相同的,并且使用 config-default.xml 中的配置集。我希望能够缩短每个存根并集中公共属性,因为在创建新作业时必须确定哪些属性是常见的变得非常不切实际。

显而易见的解决方案是通过将公共属性放在一个 job.xml 文件中来缩短我的工作流程,该文件在每个带有 job-xml 标记的存根中调用。但是,job.xml 似乎没有读取 config-default.xml,因此变量没有在 job.xml 中解析。我不能在 job-xml 标记中使用 config-default.xml,因为它本身包含在 job.properties 中设置的变量。

有什么建议吗?运行 bash 脚本并手动替换变量不是我可以使用的解决方案。

【问题讨论】:

    标签: hadoop oozie


    【解决方案1】:

    您可以使用 Global configurations 缩短工作流程 xml

    这样你可以把所有的连接属性放在全局部分,看起来像这样:

    <workflow-app xmlns="uri:oozie:workflow:0.4" name="wf-name">
    <global>
       <job-tracker>${job-tracker}</job-tracker>
       <name-node>${namd-node}</name-node>
       <job-xml>job1.xml</job-xml>
       <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
    </global>
    

    注意:确保使用正确的工作流版本(在我的示例中为 0.4)

    【讨论】:

    • 啊,谢谢,这看起来很有用。我们使用的是 0.2,但我们没有理由不能升级到 0.4。过去我曾关注 global,出于某种原因,我认为这只是 Cloudera 的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2014-08-24
    • 1970-01-01
    相关资源
    最近更新 更多