Kmeans на хаупе

  1. После каждой итерации Kmeans сохраняет ли Hadoop выходные данные, представляющие собой группу кластеров, в HDFS и извлекает их в память на следующей итерации?
  2. Картографы помещают наблюдения в определенные кластеры. Я имею в виду, что каждый узел должен знать все данные, и Hadoop распределяет только вычисления, а не данные, чтобы каждый узел давал набор наблюдений определенного узла, верно?

Спасибо


person user1687035    schedule 26.09.2012    source источник


Ответы (3)


  1. Да, если у нас есть данные для передачи от одного задания MR к другому - HDFS (или, если быть точным, DFS) - единственный вариант. Это не так уж и проблематично, так как у нас есть совокупная пропускная способность кластера
  2. Кластеризация K-средних не требует отправки всех данных на все узлы — здесь описана очень эффективная параллельная реализация. http://blog.data-miners.com/2008/02/mapreduce-and-k-means-clustering.html Вкратце идея состоит в том, чтобы агрегировать расстояния от локально доступных групповых строк до всех центров, а затем отправлять этот небольшой объем информации для централизованной обработки.
person David Gruzman    schedule 26.09.2012
comment
Большое спасибо, ссылка, которую вы дали, очень полезна. - person user1687035; 26.09.2012

Для такой итеративной обработки Hadoop/MR существуют накладные расходы из-за выполнения одного и того же задания снова и снова, пока не будет достигнута конвергенция точек кластера. Hadoop в 10 раз медленнее по сравнению с другими платформами, как указано ниже.

Итеративную обработку, такую ​​как K-Means, можно эффективно и легко выполнять с помощью BSP. Apache Hama и Apache Giraph реализуют BSP. В то время как Apache Hama предоставляет примитивы BSP, Apache Giraph использует BSP внутри и в основном используется для обработки Graph, но не предоставляет примитивы BSP.

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

person Praveen Sripati    schedule 03.10.2012

Hadoop и MR не очень хороший выбор для итерационных алгоритмов, таких как KMeans, хотя они все еще работоспособны. У меня была возможность внедрить Markov Decision Process на Hadoop, что принесло мне огромную боль, потому что каждая итерация включала дисковый ввод-вывод как для ввода, так и для вывода. Кроме того, запуск итерации (задание MR) стоит десятки секунд в кластере Hadoop.

Позже я попробовал Spark, фреймворк, похожий на MR, который отлично работает с Hadoop. Он использует память всех обычных компьютеров в кластере для кэширования инвариантов итерации вместо многократного чтения и записи их на диск. Вы можете проверить это :-)

person MesPost    schedule 14.08.2013