Hadoop: итеративная производительность MapReduce - PullRequest
2 голосов
/ 18 апреля 2010

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

Я знаю, что есть издержки для запуска заданий MapReduce. Это может быть критично для общего времени выполнения, когда требуется большое количество итераций.

Я могу себе представить, что последовательное вычисление быстрее, чем параллельное вычисление с итеративным MapReduce, если память позволяет хранить набор данных во многих случаях.

Ответы [ 2 ]

1 голос
/ 18 апреля 2010

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

Даже когда очевидно, что задача не может быть решена без параллельной обработки в приемлемое время, платформы параллельного выполнения бывают разных видов: от более низкоуровневых, ориентированных на науку инструментов, таких как PVM или MPI высокоуровневым, специализированным (например, отображать / уменьшать) средам, таким как Hadoop.

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

0 голосов
/ 13 декабря 2012

Вы можете обратиться к проекту HaLoop (http://code.google.com/p/haloop), который решает именно эту проблему.

...