MapReduce и параллельные СУБД



         

Введение


В настоящее время технология управления данными развивается под давлением парадигмы "облачных вычислений" ("cloud computing"), которая предполагает использование большого числа процессоров, работающих параллельно для решения вычислительных проблем. По сути, эта парадигма приводит к идее построения центров данных путем объединения большого числа недорогих серверов вместо того, чтобы использовать для этой цели меньшее количество высокопроизводительных серверов. Наряду с этим, интерес к кластерным архитектурам приводит к быстрому распространению соответствующих инструментальных средств программирования. MR является одним из таких инструментов, привлекательным для многих программистов, поскольку в нем обеспечивается простая модель, на основе которой пользователи могут строить относительно сложные распределенные программы.

При наличии коммерческого и академического интереса к MR естественно спросить, не придут ли системы MR на смену параллельных систем баз данных? Первые коммерческие параллельные СУБД появились примерно двадцать лет тому назад, и сегодня доступны системы примерно десяти поставщиков. Являясь надежными, высокопроизводительными вычислительными системами, они обеспечивают среду высокоуровневого программирования, являющуюся параллельной по своей природе. Хотя может показаться, что системы MR и параллельные СУБД сильно различаются, почти любую задачу параллельной обработки можно запрограммировать как в виде набора запросов к базе данных, так и в виде набора MR-заданий.

Наши обсуждения с пользователями MR приводят нас к выводу, что наиболее распространенный сценарий использования MR больше всего напоминает систему ETL. В этом качестве технология MR дополняет технологию СУБД, а не конкурирует с ней, поскольку системы баз данных не очень подходят для решения задач ETL. В этой статье мы описываем, каким образом, по нашему мнению, можно идеально использовать технологию MR, и выделяем различные рынки MR и параллельных СУБД.

Недавно мы провели сравнительное исследование с использованием популярной реализации MR с открытыми исходными текстами и двух параллельных СУБД . Результаты показывают, что СУБД работают значительно быстрее, чем MR, после того, как данные загружены, но загрузка данных в системах баз данных занимает гораздо больше времени. В этой статье мы обсуждаем источники этих различий в производительности, включая ограничивающие архитектурные особенности, которые мы видим у этих двух классов систем. В заключение мы обсуждаем уроки, которые следует усвоить сообществам MR и СУБД, а также будущие тенденции в области анализа крупномасштабных данных.




Содержание  Назад  Вперед