在 Cloudera 中外部化 Oozie 工作流的属性

Posted

技术标签:

【中文标题】在 Cloudera 中外部化 Oozie 工作流的属性【英文标题】:Externalize properties for Oozie workflows in Cloudera 【发布时间】:2017-09-15 09:06:17 【问题描述】:

我们正在 Oozie 中开发数十种不同的工作流程。我们使用 3 个环境,DEV、PRE 和 PRO。

我想做的是在所有 3 个环境中保留相同的 workflow.xml 文件,并且只从 Cloudera 环境中读取数据库连接、url、身份验证等的属性。通过这种方式,可以对文件进行版本控制并轻松部署它们。是否可以?

谷歌搜索,我看到 config-default.xml 可能是默认属性值的位置,但我在我们的 Cloudera 5.10 中找不到。我们使用 Hue 来设计工作流程,尽管我们可以使用其他方式来定义 WF。

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用作业属性来实现此目的。

oozie job -oozie http://localhost:11000/oozie -config dev.properties -run

如果您在dev.properties 文件中将属性设置为queueName=devqueue,则可以在workflow.xml 中将其引用为$queueName

请注意,作业属性文件是本地文件,不在 HDFS 中。您可以在https://oozie.apache.org/docs/4.0.0/DG_Examples.html 中获得更多详细信息。

【讨论】:

嗨兰,感谢您的回复。问题是我们的客户想要有一些像 Hue 这样的图形界面,所以他们可以控制(包括启动)数据湖中的任何作业。也许我们可以在 WF 的工作区中从外部编辑 job.properties?实际上,我尝试编辑文件的内容,但 Hue 忽略了新值 - 提交时,会打开一个弹出窗口,其中所有属性的值均未更改。也许我做错了什么?

以上是关于在 Cloudera 中外部化 Oozie 工作流的属性的主要内容,如果未能解决你的问题,请参考以下文章

在 Cloudera Hue 中为 Oozie(调用 PIG 脚本)配置正确的端口

Oozie框架介绍

Oozie

Oozie介绍

Apache Oozie学习笔记

1.1-1.4 hadoop调度框架和oozie概述