2012-05-30 4 views
0

В моем приложении, у меня есть ряд 5 Hadoop рабочих мест, которые соединены друг с другом последовательно, используяРезюме Hadoop рабочих мест Workflow

Job.waitForCompletion(false)

Теперь, документы Hadoop ясно заявляет

 
...the onus on ensuring jobs are complete 
(success/failure) lies squarely on the clients 

Теперь, если сбой моей программы клиента работы, как я могу гарантировать, что программа клиента задания может возобновиться в момент сбоя при ее перезапуске? Есть ли способ запросить JobTracker и получить дескриптор определенного задания, а затем проверить его статус работы?

+0

Не ответ, но вы должны проверить http://incubator.apache.org/oozie/ Его работа рабочий механизм, который позволяет управлять/восстановление после сбоев, как этот –

+0

Что произойдет, если oozie сам падает? Может ли он возобновиться с момента сбоя при перезагрузке? – cosmos

+0

oozie использует свойство конфигурации URL-адреса уведомлений - по мере завершения каждого задания MR, отслеживатель задания уведомляет OOZIE через этот URL-адрес. Если oozie выйдет из строя, то после его перезапуска вы можете вручную сообщить oozie, чтобы возобновить этот конкретный рабочий процесс после завершения последнего задания в рабочем процессе –

ответ

0

После подход может быть опробован, когда клиент сам врежется:

Hadoop обеспечивает JobClient, которые могут быть использованы для отслеживания текущих запущенных заданий в кластере. Поэтому, когда можно использовать клиент перезагружается следующие методы JobClient:

  • jobsToComplete() -Получить рабочие места, которые не завершены и не преминул
  • jobsToComplete() -get рабочие места, которые не завершены и не удалось
  • getAllJobs() - Получить задания, которые были отправлены.
  • getClusterStatus() - Получить информацию о статусе кластера Map-Reduce.
  • submitJob (JobConf job) - Отправьте задание в систему MR, если оно не выполнено.
Смежные вопросы