Какие проблемы можно решить с помощью mapreduce? - PullRequest
32 голосов
/ 01 апреля 2009

Есть ли теоретический анализ, который описывает, какие проблемы может решить mapreduce?

Ответы [ 8 ]

9 голосов
/ 18 мая 2009

In Map-Reduce для машинного обучения в многоядерной среде Chu и др. описывают "алгоритмы, которые соответствуют модели статистического запроса, могут быть записаны в определенной" форме суммирования ", что позволяет быть легко распараллеленным на многоядерных компьютерах. " Они специально реализуют 10 алгоритмов, включая, например, Взвешенная линейная регрессия, k-средние, наивные байесовские и SVM, с использованием структуры сокращения карт.

Проект Apache Mahout выпустил недавнюю реализацию Hadoop (Java) некоторых методов, основанных на идеях из этой статьи.

5 голосов
/ 01 апреля 2009

Многие проблемы, которые «смущают параллельно» (отличная фраза!), Могут использовать MapReduce. http://en.wikipedia.org/wiki/Embarrassingly_parallel

Из этой статьи .... http://www.businessweek.com/magazine/content/07_52/b4064048925836.htm ...

Даг Каттинг, основатель Hadoop (реализация MapReduce с открытым исходным кодом), говорит ... «Facebook использует Hadoop для анализа поведения пользователей и эффективности рекламы на сайте»

и ... «Техническая команда The New York Times арендовала вычислительные мощности в облаке Amazon и использовала Hadoop для преобразования 11 миллионов архивных статей, начиная с 1851 года, в цифровые документы с возможностью поиска. За один день они обернулись работой, которая в противном случае заняла бы месяцы ».

5 голосов
/ 01 апреля 2009

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

3 голосов
/ 12 апреля 2011

Ответ лежит на самом деле в названии алгоритма. MapReduce не является работой параллельного программирования общего назначения или средой пакетного выполнения, как предполагают некоторые ответы. Map Reduce действительно полезна, когда большие наборы данных, которые необходимо обработать (фаза отображения) и получить оттуда определенные атрибуты, а затем суммировать их по этим производным атрибутам (фаза сокращения).

3 голосов
/ 01 апреля 2009

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

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

2 голосов
/ 14 августа 2009

Вы также можете смотреть видео @ Google , я сам их смотрю и считаю их очень познавательными.

1 голос
/ 14 мая 2014

Этот вопрос был задан раньше времени. С 2009 года фактически проводился теоретический анализ вычислений MapReduce. Эта статья 2010 года Говард Карлофф и др. формализует MapReduce как класс сложности так же, как теоретики изучают P и NP. Они доказывают некоторые отношения между MapReduce и классом, называемым NC (который можно рассматривать как параллельные машины с общей памятью или определенный класс ограниченных цепей). Но основной частью работы являются их формальные определения.

1 голос
/ 23 августа 2011

Привет, мир, знакомство с MapReduce

http://blog.diskodev.com/parallel-processing-using-the-map-reduce-prog

...