Я написал простой k-мерный код кластеризации для Hadoop (две отдельные программы - картограф и редуктор). Код работает над небольшим набором данных из 2d точек в моем локальном поле. Он написан на Python, и я планирую использовать Streaming API.Итеративный MapReduce
Я хотел бы предложить предложения о том, как лучше всего запускать эту программу на Hadoop.
После каждого запуска преобразователя и редуктора создаются новые центры. Эти центры вводятся для следующей итерации.
Из того, что я вижу, каждая итерация каждого из них должна быть отдельной работой по созданию карты. И похоже, что мне придется написать еще один скрипт (python/bash), чтобы извлечь новые центры из HDFS после каждой фазы сокращения и передать его обратно в mapper.
Любые другие более простые, менее грязные способы? Если кластер использует справедливый планировщик, это будет очень долго, пока это вычисление не завершится?