Сбой задания или сбой вашего сервера? Если ваше задание не выполняется из-за OutOfMemmory на узлах, вы можете настроить количество карт и редукторов max, и JVM выберет для каждого из них так, чтобы этого никогда не произошло. mapred.child.java.opts (по умолчанию 200Xmx) обычно нужно увеличивать в зависимости от конкретного оборудования вашего узла данных.
http://allthingshadoop.com/2010/04/28/map-reduce-tips-tricks-your-first-real-cluster/
Максимальные задачи могут быть настроены на Namenode или переопределены (и установлены окончательно) на узлах данных, которые могут иметь различную аппаратную конфигурацию. Максимальные задачи настраиваются как для картографов, так и для редукторов. Чтобы рассчитать это, он основывается на CPU (ядрах) и объеме вашей оперативной памяти, а также на максимуме JVM, который вы установили в mapred.child.java.opts (по умолчанию 200). Каждый Datanode и Tasktracker установлены на 1 ГБ, поэтому для 8 ГБ машины mapred.tasktracker.map.tasks.maximum можно установить на 7, а mapred.tasktracker.reduce.tasks.maximum установить на 7 с mapred.child.java .opts установлен в -400Xmx (при условии 8 ядер). Обратите внимание, что эти максимальные значения задач выполняются вашим ЦП, если у вас есть только 1 ЦП с 1 ядром, тогда пришло время получить новое оборудование для вашего узла данных или установить маску на 1. Если у вас 1 ЦП с 4 ядрами, было бы неплохо установить map на 3 и уменьшить на 3 (сохранив 1 ядро для демона).
По умолчанию есть только один редуктор, и вам нужно настроить mapred.reduce.tasks на несколько. Это значение должно быть где-то между 0,95 и 1,75, умноженное на максимальное количество задач на узел, умноженное на количество узлов данных. Таким образом, если у вас есть 3 узла данных, и для них задано максимальное количество задач, равное 7, настройте это значение в диапазоне от 25 до 36.
Если ваш сервер дает сбой из-за проблем OutOfMemory, тогда HADOOP_HEAPSIZE используется только для кучи процессов (а не для выполнения задачи).
Наконец, если ваша работа занимает так много времени, вы можете проверить, есть ли у вас другое хорошее дополнение конфигурации - mapred.compress.map.output. Установка этого значения в true должна (баланс между временем сжатия и передачей) значительно ускорить копирование редукторов, особенно при работе с большими наборами данных. Часто работы занимают время, но есть также варианты, чтобы ускорить процесс = 8 ^)