Этот вопрос относится к моему другому вопросу Hadoop handling data skew in reducer. Тем не менее, я хотел бы спросить, доступны ли какие-либо параметры конфигурации, чтобы, если сказать, что максимальная память редуктора достигнута, выпустите новый редуктор на другой datanode с остальными данными в контексте? Или, может быть, даже на том же datanode, чтобы сказать, что некоторые записи x из контекста читаются в методе сокращения до некоторого предела, а затем остальные считаются в новом редукторе?Сплит-вход для редуктора в hadoop
ответ
Это невозможно. Количество редукторов фиксировано в конфигурации драйвера.
Вы можете попробовать объединитель, который уменьшил бы нагрузку на один редуктор, управляя более ключевыми парами значений, делая возможную агрегацию до того, как он перейдет к редуктору. Если вы собираетесь присоединиться, вы можете попробовать skewed join
в Pig. Он включает в себя 2 задания MR. В первом MR он делает выборку на одном входе, и если он находит ключ, который перекошен настолько, что он способен вписаться в память, он разбивает этот ключ на несколько редукторов. Для других записей, кроме указанных в образце, он объединяет по умолчанию. Для искаженного ввода он дублирует вход и отправляет его на оба редуктора.
Невозможно создать новый вспомогательный редуктор, чтобы сбалансировать нагрузку при выполнении задания.
Скорее вы можете выбрать другой ключевой элемент из своих записей, который поможет перетасовать данные даже через редукторы.
Else как опция, вы можете расширить существующие настройки памяти редуктора, чтобы разместить больше перетасованных записей и ускорить процесс сортировки/слияния. Пожалуйста, обратитесь ниже свойством,
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, написанная для балансировки нагрузки перекоса данных в ходе прогона задания. Но я никогда не экспериментировал с этим, любезно проверяйте, полезно ли это.
- 1. Hadoop API: OutputFormat для редуктора
- 2. Функция очистки редуктора Hadoop
- 3. Комбайнер без редуктора в Hadoop
- 4. Повторное использование карты/редуктора Hadoop
- 5. Hadoop: как выбираются узлы редуктора?
- 6. Hadoop Код редуктора parseint error
- 7. Запуск WordCount без редуктора в hadoop
- 8. Репликация на уровне редуктора в Hadoop?
- 9. Работа с классом редуктора в hadoop
- 10. Как установить имя выхода редуктора в Hadoop?
- 11. Hadoop: выход редуктора на другой редуктор
- 12. Hadoop производит только один выход редуктора
- 13. Ошибка сопоставления типа карты и редуктора Hadoop
- 14. Hadoop Mapreduce: значения для редуктора в обратном порядке
- 15. Настройка Hadoop для использования другого процесса редуктора для каждой клавиши?
- 16. Hadoop, передающий переменные от редуктора к основному
- 17. Hadoop возвращает результат преобразования вместо редуктора
- 18. Что делать, если вход редуктора слишком велик в Hadoop MapReduce
- 19. Как загрузить данные в таблицу dynamodb из редуктора задания hadoop
- 20. Разделяет ли Hadoop ключи в несколько бассейнов редуктора?
- 21. Концепция редуктора в Spark
- 22. Задача редуктора в Hadoop не ведет себя так, как ожидалось
- 23. Сортировка значения входного итератора редуктора перед обработкой в Hadoop
- 24. выход редуктора hadoop был прочитан в редукторе итеративно
- 25. hadoop: имеет более одного редуктора в псевдораспределенной среде?
- 26. Каково количество слотов редуктора на рабочих узлах GCE Hadoop?
- 27. Что нужно для редуктора?
- 28. Java Hadoop - Может ли вход редуктора вывести редуктор?
- 29. Первая программа Hadoop с использованием карты и редуктора
- 30. Hadoop: класс редуктора, который не называется даже с переопределениями