是否可以将一个 oozie 操作的输出用于其他操作,而无需从 hdfs 保存和加载?子工作流选项在这方面有用吗?

Posted

技术标签:

【中文标题】是否可以将一个 oozie 操作的输出用于其他操作,而无需从 hdfs 保存和加载?子工作流选项在这方面有用吗?【英文标题】:Is it possible to use output of one oozie action into other without need to save and load from hdfs? Is subworkflow option useful in that? 【发布时间】:2015-07-24 14:47:25 【问题描述】:

我必须编写一个运行多个猪动作的 oozie 工作流。这些猪动作可能是相互依赖的。我的意思是一个猪脚本的输出将对其他猪有用。我想避免从 hdfs 进行多次保存和加载。这是如何实现的?我可以使用 TEZ DAG 将所有猪脚本组合成 DAG 结构并从 Oozie 运行一个 Java 操作吗?

【问题讨论】:

【参考方案1】:

在 oozie 中,您不能将一个节点的输出传递到另一个节点(不存储在 HDFS 中)。您可以实现 PigServer(pig java API)来执行多个 pig 脚本。在一个使用 pigserver 的 java 程序中,它总是很容易满足您的要求。

【讨论】:

【参考方案2】:

为什么您认为不希望将中间结果写入 HDFS?您可以根据需要调整 HDFS 复制因子,甚至将其设置为 1,这相当于写入本地文件系统。

【讨论】:

以上是关于是否可以将一个 oozie 操作的输出用于其他操作,而无需从 hdfs 保存和加载?子工作流选项在这方面有用吗?的主要内容,如果未能解决你的问题,请参考以下文章

oozie sqoop 操作导入失败

使用 Oozie 执行协调器操作的输入条件

工作流调度引擎---Oozie

Oozie 工作流配置单元操作卡在 RUNNING 中

如何使用 oozie 启动 N 次脚本 Pig?

Oozie shell 操作失败