Сравнение подходов к крупномасштабному анализу данных

       

Инсталляция, конфигурирование и настройка систем


Авторам удалось установить Hadoop и запустить задания без особого труда. Для установки системы потребовалось только создать на каждом узле каталоги данных и разместить системную библиотеку и конфигурационные файлы. Конфигурирование системы для обеспечения оптимальной производительности производилось методом проб и ошибок. Было обнаружено, что некоторые параметры, такие как размер буферов для сортировки и число реплик, не влияют на эффективность выполнения программ, в то время как другие параметры, например, использование блоков большего размера, способствуют значительному повышению производительности.

Процесс инсталляции СУБД-X был относительно простым. Начальные шаги выполняются через GUI на одном из узлов кластера, а затем через тот же GUI подготавливается некоторый файл, который может передаваться утилите инсталляции, параллельно выполняемой в других узлах для завершения процесса инсталляции. Несмотря на простоту этого процесса, авторы обнаружили, что СУБД-X трудно сконфигурировать, чтобы можно было начать выполнять запросы. Вначале неудачно завершались все операции, кроме самых элементарных. В конце концов, удалось установить, что ядро системы в каждом узле было сконфигурировано с ограничением общего объема выделяемого виртуального адресного пространства. Когда это ограничение превышалось, переставали создаваться новые процессы, и операции в СУБД-X не выполнялись. Авторы решили упомянуть об этой проблеме, хотя она и возникла по их собственной административной ошибке, поскольку их удивило, что средства исчерпывающего зондирования и автоматического конфигурирования СУБД-X не смогли обнаружить наличие этого ограничения. После предыдущего успешного конфигурирования Hadoop это несколько разочаровало автров.

Даже после разрешения этих проблем и наличия работоспособной установки СУБД-X авторам регулярно мешали другие ограничения по памяти. Они пришли к заключению, что значения некоторых параметров, устанавливаемые по умолчанию, являются слишком заниженными для современных систем.
Кроме того, СУБД- X оказалась неэффективной при регулировании распределения памяти при изменении условий. Например, система автоматически расширила буферный пул с 4 мегабайт, принятых по умолчанию, всего лишь до 5 мегабайт (позднее авторы вынудили систему расширить его до 512 мегабайт). Система также выдавала предупреждение о возможной деградации производительности при увеличении размеров динамически распределяемой памяти для сортировки до 128 мегабайт (на самом деле, производительность возросла в 12 раз). Ручное изменение некоторых параметров приводило к автоматическому изменению системой других параметров. Время от времени эта комбинация ручных и автоматических изменений выражалась в такой конфигурации СУБД-X, которая отказывалась загружаться при следующем старте системы. Поскольку для регулирования большинства конфигурационных параметров требовалось наличие работающей СУБД-X, авторы не могли обеспечить для себя устойчивый режим конфигурирования системы, позволяющий восстановить предыдущее состояние.

Vertica было сравнительно просто инсталлировать в виде пакета RPM, который размещался в каждом узле. Дополнительный конфигурационный скрипт, связанный с RPM, использовался для создания каталогов метаданных и модификации некоторых параметров ядра. Настройка базы данных является минимальной и производится через соответствующие указания менеджеру ресурсов; авторы установили, что установки по умолчанию вполне для них подходят. Однако обратной стороной этого упрощенного подхода к настройке является отсутствие явного механизма для указания того, какие ресурсы предоставляются для выполнения заданного запроса, и нет способа регулировать распределение ресурсов по запросам вручную.

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


Содержание раздела