Какие метрики для измерения эффективности приложения MapReduce? - PullRequest
0 голосов
/ 25 сентября 2018

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

Я искал вокруг и нашел: метрики ускорения, масштабирования и увеличения .Правда ли, что мы обычно учитываем эти метрики при измерении эффективности приложения MapReduce?Есть ли метрика, которую мы должны рассмотреть?

Большое спасибо.

1 Ответ

0 голосов
/ 30 сентября 2018

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

Так что она действительно пытаетсярешать?Он выводит универсальную модель, которая может быть применена для решения широкого спектра проблем, требующих обработки огромного количества данных (обычно в ГБ или даже в байтах Peta).И реальная сделка этой модели в том, что она может быть легко распараллелена и даже может легко распределяется выполнение среди числа узлов .Эта статья (мной) содержит подробное объяснение всей модели.

Итак, давайте перейдем к вашему вопросу, вы спрашиваете об измерении эффективности программы уменьшения карты на основе скорость, эффективность использования памяти и масштабируемость .

Говоря по существу, эффективность программы уменьшения карты всегда зависит от того, насколько далеко он пользуется параллелизмом , заданным базовым вычислительным мощность.Это прямо указывает на то, что программа уменьшения карты, выполняемая в одном кластере, может не быть идеальной программой для запуска в другом кластере.Поэтому нам нужно иметь хорошее представление о нашем кластере, если мы надеемся выстроить нашу программу до точно настроенного уровня.Но практически редко кто-то должен настроить его на такой высокий уровень.

Давайте возьмем ваши очки по очереди:

  • Ускорение: зависит от того, какВы разделили свой ввод на разные части.Это напрямую выводит количество параллелизма (в человеческом контроле).Итак, как я упоминал выше, ускорение напрямую зависит от того, как ваша логика разделения сможет использовать ваш кластер.

  • Эффективность памяти: в основном это зависит от того, насколько эффективна память вашего картографалогика и логика редуктора есть.

  • Масштабируемость: в основном это не касается.Вы можете видеть, что модель сокращения карты уже в высокой степени масштабируема до уровня, который редко можно было бы подумать о лишней миле.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...