Бегущие материалы и редукторы на разных группах машин
-
21-12-2019 - |
Вопрос
У нас есть хорошая, большая сложная эластичная работа, которая обладает дико разными ограничениями на аппаратное обеспечение для Mapper VS Collector VS редуктора.
Вопрос: для Mappers нам нужны тонны легких машин для запуска нескольких материалов параллельно (все хорошо там); Коллекторы более голодят в памяти, но все равно все равно, чтобы дать им около 6 ГБ пикового кучи каждый. Отказ Отказ Но проблема заключается в редукторов. Когда один из этих начинается, он захватит около 32-64 ГБ для обработки.
Результат, который мы получаем смерть от раунд-Роббина, потому что полная память о коробке потребляется, что приводит к тому, что один Mapper и редуктор для обоих будут перезапущены в другом месте.
Самый простой подход был бы, если бы нам каким-то образом указать способ выполнять редуктор в другую «группу» (горстку ящиков сжимания), имея наличие материалов / коллекторов, работающих на меньших коробках. Это также может привести к значительной экономии затрат, так как мы действительно не должны размещать, узлы монтажные материалы работают на требованиям редукторов.
Альтернатива будет «разбиться» на работу, чтобы во второй кластере есть 2-й кластер, который можно повернуть, чтобы обработать вывод сборщиков Mappers - но это, очевидно, «под оптимальным».
Итак, вопрос:
- .
- Есть ли способ указать, какие «группы» Mapper или редуктор будет Беги на эластичном MapReduce и / или Hadoop?
- Есть ли способ предотвратить начало редукторов до тех пор, пока все материалы не будут сделаны?
- у кого есть другие идеи о том, как подойдут к этому?
ура!
Решение
Во время работы Hadoop MapReduce редукторы начинают работать после выполнения всех материалов.Выход из фазы карты перетасен и отсортирован до того, как произойдет разделение, чтобы решить, какой редуктор получает какие данные.Таким образом, редукторы начинают бегать после завершения фазы Shuffle / сортировки (после того, как создаваемые материалы).