Задания управления Hadoop внутри основного метода - PullRequest
1 голос
/ 03 января 2012

Каждый раз, когда я запускаю задание hadoop внутри моего основного метода, единственное, что делает мой основной, - это завершает работу. Например, допустим, у меня есть этот основной метод:

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


             //code for creating job
             //run job

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

Сначала я мог только запустить задание, без появления этих сообщений. Я пытался выполнить задание через отдельный поток, но единственное, что я выполнил, - это чтобы оба сообщения появлялись до того, как моя работа была отправлена ​​и завершена. Есть ли способ, которым я могу напечатать «до», сделать работу, а затем напечатать «после» ??

Это фиктивный пример. Что я действительно хочу сделать, так это запускать задания в цикле while (true), иметь некоторые условия внутри и запускать другие задания на основе этих условий, пока не появится перерыв. Я думаю, что те 2 проблемы, которые я упомянул, в некотором роде похожи, поэтому, решив фиктивный пример, я думаю, что смогу решить свою настоящую проблему.

Я не ищу что-то вроде Узи, потому что я уверен, что есть более простой способ сделать это. Спасибо.

1 Ответ

4 голосов
/ 03 января 2012

Да, вы можете.

Вот как:

job.waitForCompletion(true);

Обычно, когда вы отправляете свою работу, если вы делаете это, она отправляет ее и не выходит из цепочки, пока не получит подтверждение. Тогда вы сможете увидеть распечатку.

...