2016-09-06 4 views
0

У меня есть две привязанные шаги создания карты (в рамках более крупного разветвленного рабочего процесса). Первые группы по id и в очень небольшом числе случаев создают новый объект с другим идентификатором (может быть, несколько тысяч из сотен миллионов входных объектов). Второй снова группирует все, включая новые объекты, по id и создает кучу вещей, которые мне волнуют.Как я могу избежать ненужного повторения шага карты в прикованном хаосе

Кажется, действительно расточительно читать/перемешать все данные снова, когда все, кроме новых объектов, уже на сгруппированном сервере и упорядочено по id. Есть ли способ просто перетащить новый материал в текущие редукторы и снова запустить список?

Я использую потоки Hadoop, поэтому любой ответ, который работает с этим, был бы идеальным, но меня тоже интересуют общие ответы.

ответ

0

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

Если новые объекты создаются картографами, а редукторы первой ступени - только сквозные, вы должны сделать это за один шаг: картографы на первом этапе должны испускать как оригинальные, так и новые записи (нет правила, согласно которому mappers должны быть 1: 1. Картограф может производить больше или меньше записей, чем вводится)

 Смежные вопросы

  • Нет связанных вопросов^_^