Вопрос

У нас есть хорошая, большая сложная эластичная работа, которая обладает дико разными ограничениями на аппаратное обеспечение для Mapper VS Collector VS редуктора.

Вопрос: для Mappers нам нужны тонны легких машин для запуска нескольких материалов параллельно (все хорошо там); Коллекторы более голодят в памяти, но все равно все равно, чтобы дать им около 6 ГБ пикового кучи каждый. Отказ Отказ Но проблема заключается в редукторов. Когда один из этих начинается, он захватит около 32-64 ГБ для обработки.

Результат, который мы получаем смерть от раунд-Роббина, потому что полная память о коробке потребляется, что приводит к тому, что один Mapper и редуктор для обоих будут перезапущены в другом месте.

Самый простой подход был бы, если бы нам каким-то образом указать способ выполнять редуктор в другую «группу» (горстку ящиков сжимания), имея наличие материалов / коллекторов, работающих на меньших коробках. Это также может привести к значительной экономии затрат, так как мы действительно не должны размещать, узлы монтажные материалы работают на требованиям редукторов.

Альтернатива будет «разбиться» на работу, чтобы во второй кластере есть 2-й кластер, который можно повернуть, чтобы обработать вывод сборщиков Mappers - но это, очевидно, «под оптимальным».

Итак, вопрос:

    .
  • Есть ли способ указать, какие «группы» Mapper или редуктор будет Беги на эластичном MapReduce и / или Hadoop?
  • Есть ли способ предотвратить начало редукторов до тех пор, пока все материалы не будут сделаны?
  • у кого есть другие идеи о том, как подойдут к этому?

ура!

Это было полезно?

Решение

Во время работы Hadoop MapReduce редукторы начинают работать после выполнения всех материалов.Выход из фазы карты перетасен и отсортирован до того, как произойдет разделение, чтобы решить, какой редуктор получает какие данные.Таким образом, редукторы начинают бегать после завершения фазы Shuffle / сортировки (после того, как создаваемые материалы).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top