需要按顺序执行一定数量的作业,以便将一个作业的结果输入另一个作业。工作链的一部分也有一个循环。目前,我正在使用wait for completition运行此顺序,但我将从Web服务启动此序列,因此我不想陷入等待响应的困境。我不想开始这个序列并返回。
考虑到工作取决于彼此,我该怎么做?
答案 0 :(得分:0)
我遵循的典型方法是使用Oozie工作流来链接作业序列,并相应地将相关输入传递给它们。 我使用shell脚本来调用oozie作业。
我不确定oozie工作流程中的循环。但是下面的链接谈到了在工作流程中实现循环的方法。希望它可以帮到你。
http://zapone.org/bernadette/2015/01/05/how-to-loop-in-oozie-using-sub-workflow/
除此之外,JobControl类也是一个很好的选择,如果作业需要按顺序执行,并且需要较少的工作量来实现。循环很容易,因为它将完全用Java代码完成。
http://gandhigeet.blogspot.com/2012/12/hadoop-mapreduce-chaining.html
https://cloudcelebrity.wordpress.com/2012/03/30/how-to-chain-multiple-mapreduce-jobs-in-hadoop/