我正在java中动态生成一些pig查询,并使用pigserver类执行相同的查询。是否有任何方法可以异步提交作业,然后轮询/挂接作业完成?另外,如果pig不允许,我可以使用oozie和java操作来实现所需的行为。
wgmfuz8q1#
首先正确地发布您的查询。上面的描述没有很好的解释性。如果您想在java中异步运行任何作业,您应该使用线程编程。有一个很好的apache框架“quartz scheduler”可以完成此任务。它是开源的。请参阅此链接。http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/
w9apscun2#
可以使用oozie中的fork和join控制节点并行运行作业。如果您只想更改要运行的pig脚本的某些属性(您可以使用模板变量-请参阅oozie pig操作文档),那么执行动态代码很容易。然而,如果动态的意思是动态地构建不同的代码路径,那么在调用pig操作之前,您将需要一个定制的java操作将pig脚本写到hdfs。
2条答案
按热度按时间wgmfuz8q1#
首先正确地发布您的查询。上面的描述没有很好的解释性。如果您想在java中异步运行任何作业,您应该使用线程编程。有一个很好的apache框架“quartz scheduler”可以完成此任务。它是开源的。请参阅此链接。
http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/
w9apscun2#
可以使用oozie中的fork和join控制节点并行运行作业。
如果您只想更改要运行的pig脚本的某些属性(您可以使用模板变量-请参阅oozie pig操作文档),那么执行动态代码很容易。然而,如果动态的意思是动态地构建不同的代码路径,那么在调用pig操作之前,您将需要一个定制的java操作将pig脚本写到hdfs。