Задания управления Hadoop внутри основного метода

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

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


             //code for creating job
             //run job

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

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

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

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


person jojoba    schedule 02.01.2012    source источник
comment
Вы имеете в виду дождаться завершения задания, прежде чем печатать после?   -  person Tudor    schedule 03.01.2012
comment
да :Д. печатать до, запускать и завершать, печатать после.   -  person jojoba    schedule 03.01.2012


Ответы (1)


Да, ты можешь.

Вот как:

job.waitForCompletion(true);

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

person inquire    schedule 03.01.2012
comment
это то, что у меня есть, и оно все еще не работает.. фреймворк почему-то не позволяет мне контролировать мой основной класс, как я хочу.. хорошо, я попробую еще раз завтра, чтобы увидеть, сделал ли я что-то не так, и я опубликую полученные результаты. Спасибо - person jojoba; 03.01.2012
comment
Наконец-то я попробовал это, и это сработало. Я использовал java-потоки, и происходили странные вещи, но когда я использовал один поток, это сработало. Спасибо. - person jojoba; 08.02.2012