Как сообщить о прогрессе Hadoop Job, чтобы избежать потери задания из-за тайм-аута? - PullRequest
2 голосов
/ 06 февраля 2012

1) У меня есть задание Hadoop только для карт, которое передает данные в кластер Cassandra.

2) Иногда потоковая передача занимает более 10 минут, и, поскольку ход выполнения не передается в задание, он убивает задание.

3) Я пытался сообщить о прогрессе с помощью метода context.progress (), но это не помогло.

Есть ли что-нибудь еще, чтобы сообщить о прогрессе работе hadoop?

Я написал следующий пример кода для имитации проблемы и со следующим кодом.

Thread.sleep(360000);

context.progress();

Thread.sleep(360000);

Сбой со следующим сообщением об ошибке

12/02/06 11:40:25 INFO mapred.JobClient: идентификатор задачи: try_201202061119_0001_m_000001_1, Статус: СБОЙ Задача пытаться_201202061119_0001_m_000001_1 не удалось сообщить о состоянии для 601 секунд. Убийство!

Ответы [ 2 ]

0 голосов
/ 18 апреля 2017

context.progress () должен работать, но, возможно, вы столкнулись со следующей проблемой: https://issues.apache.org/jira/browse/MAPREDUCE-1905, которая исправлена ​​в более поздних версиях.

0 голосов
/ 07 февраля 2012

Пожалуйста, посмотрите на этот вопрос:
Как исправить «Задаче попытки_201104251139_0295_r_000006_0 не удалось сообщить о состоянии в течение 600 секунд.»

установка значения mapred.task.timeout на более высокое значение - самый простой способчтобы исправить эту проблему.

...