Как сказать Hadoop не удалять временную директорию из HDFS, когда задача убита? - PullRequest
0 голосов
/ 30 ноября 2011

По умолчанию задачи карты hadoop записывают обработанные записи в файлы во временном каталоге в ${mapred.output.dir}/_temporary/_${taskid}.Эти файлы находятся здесь до тех пор, пока FileCommiter не переместит их в ${mapred.output.dir} (после успешного завершения задачи).У меня есть случай, когда в setup() задачи карты мне нужно создать файлы в указанном выше временном каталоге, где я записываю некоторые относящиеся к процессу данные, которые позже используются в другом месте.Однако когда задачи hadoop убиты, временный каталог удаляется из HDFS.

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

С уважением

1 Ответ

3 голосов
/ 30 ноября 2011

Не рекомендуется зависеть от временных файлов, расположение и формат которых может меняться в любое время между выпусками.

В любом случае, установка mapreduce.task.files.preserve.failedtasks в true сохранит временные файлы для всех неудачных задач.и установка mapreduce.task.files.preserve.filepattern для регулярного выражения идентификатора задачи сохранит временные файлы для соответствующего шаблона независимо от успеха или неудачи задачи.

...