Раздельный ввод в редуктор в hadoop

Этот вопрос отчасти связан с моим другим вопросом, касающимся обработки данных в Hadoop в редукторе. Однако я хотел бы спросить, есть ли доступные параметры конфигурации, чтобы, если, скажем, был достигнут максимальный объем памяти редуктора, тогда появился новый редуктор на другом датодане с остальными данными в контексте? Или, может быть, даже на одном и том же датоде, скажем, некоторые x-записи вне контекста считываются в методе Reduce до некоторого предела, а затем остальные считываются в новом редукторе?

3 ответа

Вы можете попробовать объединитель, который уменьшит рабочую нагрузку одного редуктора, обрабатывающего большее количество пар ключ-значение, выполнив возможную агрегацию до того, как она перейдет к редуктору. Если вы делаете соединение, то вы можете попробовать skewed join в Свинья Он включает в себя 2 задания MR. В первом MR он выполняет выборку на одном входе, и если он находит ключ, который искажен настолько, что может поместиться в памяти, он разделяет этот ключ на несколько редукторов. Для других записей, отличных от той, которая указана в образце, выполняется соединение по умолчанию. Для искаженного ввода он дублирует вход и отправляет его на оба редуктора.

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

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

Иначе, как вариант, вы можете расширить существующие настройки памяти редуктора, чтобы разместить больше перемешанных записей и быстрее выполнить сортировку / объединение. Пожалуйста, обратитесь ниже свойства,

mapreduce.reduce.memory.mb

mapreduce.reduce.java.opts

mapreduce.reduce.merge.inmem.threshold

mapreduce.reduce.shuffle.input.buffer.percent

mapreduce.reduce.shuffle.merge.percent

mapreduce.reduce.input.buffer.percent

Я мог вспомнить, что была расширенная библиотека mapreduce, skewtune, написанная для балансировки нагрузки на перекос данных в ходе выполнения задания. Но я никогда не экспериментировал с этим, пожалуйста, проверьте, полезно ли это.

Это невозможно. Количество редукторов фиксируется в конфигурации драйвера.

Другие вопросы по тегам