主方法中的Hadoop控制作业

时间:2012-01-02 22:01:18

标签: java hadoop controls jobs main

每次我在main方法中运行hadoop作业时,我主要做的唯一事情就是完成工作。例如,假设我有这个主要方法:

      public  static void main(String[] args)
      {
             System.out.println("before");


             //code for creating job
             //run job

             System.out.println("after");
      }

起初我只能运行这项工作,而不会显示任何这些消息。我尝试通过一个单独的线程运行这个工作,但我完成的唯一事情是在我的工作提交和完成之前出现这两个消息。有什么方法可以“打印”之前,做好工作,然后打印“之后”?

这是一个虚拟的例子。我真正想做的是在一段时间(真实)循环中运行作业,在内部有一些条件并根据这些条件运行其他作业,直到出现中断。我认为我提到的那两个问题是相似的,所以通过解决虚拟的例子,我想我可以解决我的真正问题。

我不是在寻找像Oozie这样的东西,因为我确信有一种更简单的方法可以做到这一点。感谢。

1 个答案:

答案 0 :(得分:4)

是的,你可以。

以下是:

job.waitForCompletion(true);

通常,当您提交作业时,如果您这样做,它将提交它,并且在收到确认之前不退出该帖子。你应该能够看到打印输出。