异步猪作业提交

Posted

技术标签:

【中文标题】异步猪作业提交【英文标题】:Async pig job submission 【发布时间】:2013-01-03 09:22:09 【问题描述】:

我在 Java 中动态生成一些 Pig 查询并使用 PigServer 类执行相同的查询。有什么方法可以异步提交作业,然后轮询/挂钩以完成作业?另外,如果 pig 不允许,我可以使用 Oozie 和 Java Action 来实现所需的行为。

【问题讨论】:

【参考方案1】:

您可以在 OOZIE 中使用fork and join control nodes 来并行运行作业。

如果您只想更改 Pig 脚本的某些属性以运行(您可以使用模板变量 - 请参阅 oozie pig action 文档),执行动态代码很容易。但是,如果动态是指动态构建不同的代码路径,那么在调用 pig 操作之前,您需要一个自定义 Java 操作将 pig 脚本写入 HDFS。

【讨论】:

【参考方案2】:

首先正确发布您的查询。上面的描述没有很好的解释。如果你想在java中异步运行任何作业,你应该使用线程编程。有一个很好的apache框架叫做“quartz-scheduler”可以做到这一点任务。它是开源的。参考这个链接。

http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/

【讨论】:

多线程是一种方法,但我一直在寻找更强大的方法,其中并行性的固有复杂性由框架管理。(类似于 .NET 中的任务并行库)肯定会看看在石英调度器

以上是关于异步猪作业提交的主要内容,如果未能解决你的问题,请参考以下文章

017_异步处理_Queueable

Flink作业提交(三)--- Job运行

Flink源码篇,作业提交流程作业调度流程作业内部转换流程图

IDEA提交作业(gitee)

HUE提交MapReduce作业示例

HUE提交MapReduce作业示例