【发布时间】:2013-01-03 09:22:09
【问题描述】:
我在 Java 中动态生成一些 Pig 查询并使用 PigServer 类执行相同的查询。有什么方法可以异步提交作业,然后轮询/挂钩以完成作业?另外,如果 pig 不允许,我可以使用 Oozie 和 Java Action 来实现所需的行为。
【问题讨论】:
标签: java hadoop apache-pig oozie
我在 Java 中动态生成一些 Pig 查询并使用 PigServer 类执行相同的查询。有什么方法可以异步提交作业,然后轮询/挂钩以完成作业?另外,如果 pig 不允许,我可以使用 Oozie 和 Java Action 来实现所需的行为。
【问题讨论】:
标签: java hadoop apache-pig oozie
您可以在 OOZIE 中使用fork and join control nodes 来并行运行作业。
如果您只想更改 Pig 脚本的某些属性以运行(您可以使用模板变量 - 请参阅 oozie pig action 文档),执行动态代码很容易。但是,如果动态是指动态构建不同的代码路径,那么在调用 pig 操作之前,您需要一个自定义 Java 操作将 pig 脚本写入 HDFS。
【讨论】:
首先正确发布您的查询。上面的描述没有很好的解释。如果你想在java中异步运行任何作业,你应该使用线程编程。有一个很好的apache框架叫做“quartz-scheduler”可以做到这一点任务。它是开源的。参考这个链接。
http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/
【讨论】: