Hadoop: Почему яростно пишущая задача по сокращению времени может быть превышена? - PullRequest
1 голос
/ 04 октября 2011

У меня есть задача сокращения Hadoop, которая читает входные записи в пакетном режиме, выполняет большую обработку и записывает большое количество выходных данных для каждого входного пакета. У меня есть read , который Hadoop считает записывающим выводом "прогрессом" с целью уничтожения зависших задач. Тем не менее, несмотря на постоянное написание большого количества выходных данных, моя задача все еще истекает по тайм-ауту и ​​уничтожается. Итак: как я могу узнать, когда Hadoop думает, что задание в последний раз сообщало о прогрессе? Зачем мне звонить context.progress() с каждым context.write()? Есть ли ситуации, когда письмо не считается прогрессом? (Например, мои ключи NullWritable с.) Я использую Cloudera CDH3u1 на CentOS 5.7, если это имеет какое-либо значение.

1 Ответ

0 голосов
/ 05 октября 2011

Не уверен, почему задачи убиваются, но вы можете увеличить значение mapreduce.task.timeout , по умолчанию оно равно 600000 мс.Это может не быть хорошей практикой, поскольку задачи румян будут выполняться дольше из-за увеличения значения времени ожидания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...