Оптимизация сортировки и перемешивания в Hadoop MapReduce - PullRequest
1 голос
/ 23 февраля 2011

Я ищу проект Hadoop, основанный на исследованиях / реализации, и наткнулся на список, размещенный на вики-странице - http://wiki.apache.org/hadoop/ProjectSuggestions. Но эта страница была в последний раз обновлена ​​в сентябре 2009 года. Итак, я 'Я не уверен, что некоторые из этих идей уже были реализованы или нет.Меня особенно интересовала «Оптимизация сортировки и перемешивания в среде MR», в которой говорится о «объединении результатов нескольких карт на стойке или узле до перемешивания. Это может сократить объем поисков и промежуточное хранилище».

Кто-нибудь пробовал это раньше?Это реализовано в текущей версии Hadoop?

Ответы [ 3 ]

2 голосов
/ 23 февраля 2011

Существует функциональность объединителя (как описано в разделе «Объединение» http://wiki.apache.org/hadoop/HadoopMapReduce),, который более или менее перемешивает в памяти. Но я считаю, что объединитель объединяет только пары ключ-значение для одно задание карты, а не все пары для данного узла или стойки.

1 голос
/ 23 февраля 2011

Я думаю, что это очень сложная задача.В моем понимании идея состоит в том, чтобы сделать дерево вычислений вместо «плоской» карты-редукции. Хорошим примером этого является движок Google Dremel (теперь называется BigQuey).Я бы посоветовал прочитать эту статью: http://sergey.melnix.com/pub/melnik_VLDB10.pdf
Если вам интересна такая архитектура - вы также можете взглянуть на клон этой технологии с открытым исходным кодом - Open Dremel.http://code.google.com/p/dremel/

1 голос
/ 23 февраля 2011

Описание проекта направлено на «оптимизацию».Эта функция уже присутствует в текущем Hadoop-MapReduce, и, вероятно, она может выполняться намного быстрее.Звучит как ценное улучшение для меня.

...