Методы и средства обработки данных - Control Systems ...

Страница создана Юрий Лосев
 
ПРОДОЛЖИТЬ ЧТЕНИЕ
Методы и средства
                                                          обработки данных

DOI https://doi.org/10.15407/usim.2019.02.040
УДК 303.721;004.03142

А.А. УРСАТЬЕВ, канд. техн. наук, старший научный сотрудник, ведущий научный сотрудник,
Международный научно-учебный центр информационных технологий и систем
НАН и МОН Украины, просп. Академика Глушкова, 40, Киев 03187, Украина,
aleksei@irtc.org.ua

БОЛЬШИЕ ДАННЫЕ. АНАЛИТИЧЕСКИЕ
БАЗЫ ДАННЫХ И ХРАНИЛИЩА: GREENPLUM

Статья представляет собой продолжение исследований Больших Данных и инструментария, трансформируемого
в новое поколение технологий и архитектур платформ баз данных и хранилищ для интеллектуального вывода.
Рассмотрен ряд прогрессивных разработок известных в мире ИТ-компаний, в частности Greenplum DB.
Ключевые слова: Greenplum Data Computing Appliance, MPP-архитектура без разделения ресурсов на основе ядра Post-
greSQL, технология MPP Scatter/Gather Streaming загрузки (выгрузки), полиморфное хранение данных, аналитика Big
Data, интеграция платформ, механизм запросов SQL Hadoop HAWQ, самообслуживание данными.

Общая характеристика
                                                          хранилищами данных и рабочими нагрузками
Greenplum (NYSE: EMC)
                                                          бизнес-аналитики и науки о данных.
Greenplum Database® — это первая в мире                     Масштабируемая платформа реляционных
полнофункциональная платформа с откры-                    БД Greenplum Database разработана компа-
тым исходным кодом — проект выпущен под                   нией Greenplum Software (основана в 2003 г.),
лицензией Apache 2 [90]. СУБД Greenplum1 —                впоследствии (июль 2010 г.) приобретенной
это реляционная база данных, использую-                   корпорацией EMC. Торговая марка «Greenplum»
щая широкомасштабную параллельную MPP-                    для СУБД была сохранена, а разработка пере-
архитектуру без разделения ресурсов (Shared               дана в 2012 г. подразделению Pivotal — незави-
Nothing), на основе ядра Postgres2 Core. Обес-            симой компании программного обеспечения,
печивает автоматическое распараллеливание                 принадлежащей EMC, VMware и General Electric.
данных и запросов в масштабируемой до раз-                EMC вышла на рынок хранилищ данных и ана-
меров петабайт среде обработки. Доступ и за-              литики, представив Greenplum Database 4.0 и
прос данных осуществляется через внешний                  EMC Greenplum Data Computing Appliance (DCA),
синтаксис таблицы. Предназначена для управ-               и позже — аналитическую БД Pivotal Greenplum
ления крупномасштабными аналитическими                    Database корпоративного класса с мощной и
1
    – http://dbdb.io/db/greenplum                         быстрой аналитикой для больших объемов
2
                                                          данных под торговой маркой Pivotal. Рыноч-
 – объектно-реляционная база данных с более чем
30-летней разработкой, заслужившая высокую репу-          ный потенциал и необходимость иметь эффек-
тацию за надежность, функциональность и произво-          тивную технологию для работы в пространстве
дительность - https://www.postgresql.org/                 хранилища данных, вероятно, явились ключе-
40                                              ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

выми факторами, которые привели к тому, что         мости от существующих операционных задач,
EMC приобрела Greenplum Software [30, 91–98].       большинство клиентов выбирают только одну
  Автор уже обращался к теме специализи-            область производительности: загрузка данных,
рованных хранилищ и устройств обработки             запрос или работа (обработка транзакций).
данных, представляющих собой сконфигури-               Традиционные хранилища данных являются
рованный, подготовленный к быстрому ис-             относительно медленным производителем
пользованию, автономный аппаратно-прог-             информации для бизнес-пользователей, кото-
раммный комплекс (Appliances), объединяю-           рым нужны полные аналитические решения
щий хранение и обработку данных в одной             для выполнения своей работы. Хранилища
системе, спроектированной и оптимизирован-          обычно обновляются периодически, чаще все-
ной под принятие аналитических решений [98,         го еженощно. Таким образом, между бизнес-
99]. Обусловлено это было (конец 90-х годов         транзакцией и ее появлением в DW существует
XIX ст. — начало 2000 годов) возрастающими          некоторая задержка. Свежие релевантные дан-
требованиями информационной поддержки               ные попадают в операционные хранилища дан-
принятия решений на фоне стремительно уве-          ных, в то время как оно недоступно для анали-
личивающегося роста Больших Данных (Big             за бизнес-пользователей в реальном времени.
Date) [30, 100].                                    Традиционный подход к хранилищу данных
  Во-первых, широко распространенные кри-           часто слишком медленный для быстрого при-
тически важные системы оперативной обра-            нятия решений в организациях. Более того,
ботки транзакций (OLTP), управляемые ре-            традиционная модель DW может не включать в
ляционными базами данных (RDBMS), были              себя всю соответствующую информацию, до-
ориентированы на транзакционную обработку           ступную для бизнеса.
и не были сосредоточены на процессах приня-            Обусловлено это проблемами увеличения
тия управленческих решений. RDBMS — опе-            объема и типа данных, количества пользовате-
ративная обработка транзакций и хранение            лей и сложности анализа. Именно DW в первую
информации, где необходим быстрый доступ и          очередь становится чувствительным к време-
обновление одиночных записей, оказались не          ни бизнес-практики, такой как операционная
эффективными при выполнении рабочих на-             бизнес-аналитика (BI), часто обновляемые па-
грузок бизнес-аналитики на больших наборах          нели управления, выработка рекомендаций по
данных. Традиционные поставщики RDBMS               электронной коммерции на лету и др. Бизнес-
переработали программное обеспечение баз            аналитики вынуждены уменьшать свои наборы
данных OLTP-систем для поддержки рабочих            данных в случае медленной загрузки данных. В
нагрузок в OLAP-стиле. Хотя эти решения до-         конечном итоге эта ситуация приводит к менее
статочно хороши для OLTP, их очень сложно           чем оптимальному пониманию бизнеса, по-
создать, управлять и настраивать с учетом бу-       скольку в анализе отсутствуют все данные, до-
дущего роста хранилищ данных [92, 99].              ступные для бизнес-пользователей [92, 93, 95].
  Во-вторых, скорость загрузки данных в си-            Преодолеть препятствия основных бизнес-
стему Business Intelligence/Data Warehousing (BI/   требований DW/BI и обеспечить предсказуе-
DW), иначе пропускная способность хранили-          мую производительность и масштабируемость
ща, не должна препятствовать бесперебойной          должны были решения, положенные в основу
работе инструментов BI. Скорость, с которой         упомянутых выше разработок EMC. Greenplum
данные могут быть загружены в систему DW/           DCA, как и подобные устройства других произ-
BI, важна для пользователей, которые стремят-       водителей, относятся к подмножеству специа-
ся перейти к анализу в режиме реального или         лизированных решений, предназначенных
близкого к нему времени, при существующей           для аналитической работы с большими мас-
пакетной передаче данных в хранилище с не-          сивами данных. DCA — это интегрированная
большим окном загрузки. Поэтому, в зависи-          платформа аналитики, ускоряющая анализ
ISSN 0130-5395, УСиМ, 2019, № 2                                                                      41
А.А. Урсатьев

активов данных в рамках единого устройства с        Ethernet обеспечивает высокоскоростное, рас-
использованием базы данных GreenplumTM для          ширяемое решение IP-взаимодействия в рам-
оптимизации аналитики SQL на структуриро-           ках GPDB. Каждый сервер сегмента (Segment
ванных данных (представлена в окт. 2010 г.).        Host) имеет выделенный набор хранилищ с
В ее основе — БД Greenplum, разработанная           прямым подключением для минимизации за-
для управления крупномасштабными храни-             держки ввода-вывода от сервера к хранилищу.
лищами данных и аналитическими рабочими             Главная база данных (Master Database) выпол-
нагрузками. Greenplum также придерживается          няется на основном сервере Master Host (ре-
концепции переноса аналитической обработ-           плицируется на резервный мастер-сервер) и
ки значительно ближе к данным и параллель-          является точкой входа в БД Greenplum для ко-
ным вычислениям на архитектурных принци-            нечных пользователей и инструментов BI. Вза-
пах MPP [90–94, 98].                                имодействие с БД Greenplum осуществляется
  Логическая архитектура БД Greenplum               посредством клиентских программ, таких как
(GPDB) [91–93, 101] представляет собой мас-         psql (pgSQL) или через интерфейсы прикладно-
сив экземпляров (Instances) распределенной          го программирования (API): JDBC или ODBC.
БД PostgreSQL, работающих совместно как             Мастер-сервер координирует работу с други-
одна СУБД, для представления единого образа         ми экземплярами БД в системе, называемыми
БД. GPDB обеспечивает хранение и обработку          сегментами (Segment Instances).
данных, распределяя нагрузку на серверы или            Master Host содержит глобальный систем-
хосты (рис. 17). На каждой машине запущен           ный каталог (набор системных таблиц с мета-
экземпляр базы данных PostgreSQL, который           данными о данных GPDB), но не содержит
модифицирован для поддержки параллельного           никаких пользовательских данных. Данные
выполнения запросов. Все узлы подключены            хранятся только на серверах сегментов. Ма-
через сеть Greenplum (GNet Interconnect) для фор-   стер обрабатывает входящие команды SQL за-
мирования единого экземпляра GPDB. Про-             просов, распределяет рабочие нагрузки между
граммное обеспечение gNet Software Interconnect     экземплярами сегмента, координирует резуль-
настроено и оптимизировано для масштаби-            таты, возвращаемые каждым сегментом, и
рования до десятков тысяч процессоров и ис-         предоставляет конечные результаты клиент-
пользует отраслевые стандарты Gigabit Ethernet      ской программе.
и 10 GigE. Двухпортовая коммутация 10 GigE             Segment Host. Когда запрос отправляется на
                                                    Master Host, он оптимизирован и разбит на
                                                    более мелкие компоненты, которые отправ-
                                                    ляются в сегменты для совместной работы по
                                                    доставке конечных результатов. Сегментные
                                                    серверы (сегменты хостов, рис. 17) запускают
                                                    экземпляры базы данных — Segment Instances.
                                                    Экземпляр сегмента — это комбинация про-
                                                    цесса, памяти и содержимого базы данных на
                                                    сервере сегментов (Segment Servers). На экзем-
                                                    пляре сегмента содержится уникальный раз-
                                                    дел всей БД. Большая часть обработки запро-
                                                    сов происходит либо внутри сегмента, либо
                                                    между экземплярами сегмента. Каждый сер-
                                                    вер сегментов запускает несколько экземпля-
                                                    ров сегмента — БД Greenplum обычно содержит
                                                    от двух до восьми сегментов, в зависимости
Рис. 17                                             от количества ядер процессора, объема опе-
42                                        ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

ративной памяти, хранилища, сетевых интер-       зуется путем рассеивания данных из исходных
фейсов и рабочих нагрузок. Пользовательские      систем через параллельные потоки, одновре-
таблицы и их индексы распределяются по до-       менно поступающие ко всем узлам GPDB. Фи-
ступным сегментам в системе GPDB. Каждый         нальный сбор и хранение данных на дисках
сегмент содержит свою часть данных. Таким        происходит на узлах одновременно. Техноло-
образом, запросы параллельно обслуживаются       гия SG Streaming управляет потоком данных в
в соответствующих экземплярах сегмента на        узлах БД, устраняя традиционные узкие места
каждом сервере сегментов. Пользователи вза-      массовой загрузки, и поддерживает непре-
имодействуют с сегментами GPDB через Master      рывные модели загрузки в режиме реального
Database.                                        времени с незначительным воздействием на
                                                 одновременные операции с БД. Возможно пре-
                                                 образование данных (ELT или ETL) во время
БД Greenplum и PostgreSQL.
                                                 загрузки. Это отличает SG Streaming от тради-
Основные различия
                                                 ционных технологий массовой загрузки, чре-
Внутренние элементы PostgreSQL были моди-        ватой появлением бутылочных горлышек, из-за
фицированы или дополнены для поддержки           приема данных из одного источника, часто по
параллельной структуры БД Greenplum. Так,        одному или небольшому числу параллельных
системный каталог, планировщик запросов,         каналов, что приводит к потерям времени и
оптимизатор, исполнитель запросов и компо-       постоянно увеличивающимся нагрузкам. При
ненты диспетчера транзакций были изменены        этом устраняется необходимость в дополни-
и расширены, чтобы была возможность вы-          тельном уровне серверов, функционирующих
полнять запросы одновременно во всех парал-      только как загрузчики хранилища данных.
лельных экземплярах базы данных PostgreSQL.      При этом они добавляют значительную слож-
Сетевой уровень соединения Greenplum обес-       ность и стоимость, но эффективно повышают
печивает связь между отдельными экземпля-        пропускную способность [93–101].
рами PostgreSQL и позволяет системе вести          Greenplum считает, на основе отзывов кли-
себя как одна логическая база данных. БД         ентов, что скорость загрузки данных с исполь-
Greenplum также содержит функции, предна-        зованием этой технологии в реальных произ-
значенные для оптимизации рабочих нагрузок       водственных средах, достигает более четырех
PostgreSQL для бизнес-аналитики (BI). Напри-     терабайт в час при незначительном воздей-
мер, Greenplum добавил параллельную загрузку     ствии на одновременные операции с базой
и полиморфное хранение данных любой табли-       данных [101]. БД Greenplum поддерживает бы-
цы или раздела, управление ресурсами, декла-     струю параллельную загрузку данных [91–93,
ративные разделы и подразделы для неявного       96, 102] посредством функций «внешних таб-
создания ограничений раздела, оптимизацию        лиц» 3. Используя внешние таблицы (рис. 18)
запросов и улучшения хранилища, которые не
найдены в стандартном PostgreSQL.                3
                                                   Defining External Tables. Внешние таблицы (ВТ)
   Параллельная загрузка данных. В крупномас-    позволяют получать доступ к внешним данным, как
штабном хранилище традиционно данные вы-         к обычной таблице базы данных. ВТ представляет
                                                 собой таблицу БД Greenplum, в которой хранятся
нуждены загружаться в относительно неболь-
                                                 данные, находящиеся за пределами базы данных.
шом окне обслуживания. Компания Greenplum        Часто используются для перемещения данных в БД
производит высокопроизводительную парал-         Greenplum и из нее. ВТ могут быть основаны на файлах
лельную загрузку посредством новой техно-        или на веб-сайтах. Внешние веб-таблицы в Интернете
логии потоковой передачи данных Scatter/         обеспечивают доступ к динамическим источникам
Gather Streaming (SG Streaming), используя ме-   данных, обслуживаемым сервером HTTP или опера-
                                                 ционным процессом, и позволяют БД Greenplum
ханизм MPP-структуры. Подход к загрузке —
                                                 обрабатывать эти данные также как обычные таблицы
параллельно-всюду (parallel-everywhere) реали-   БД — https://gpdb.docs.pivotal.
ISSN 0130-5395, УСиМ, 2019, № 2                                                                   43
А.А. Урсатьев

                                                 only — это представление хранилища, которое
                                                 допускает только добавление новых строк в
                                                 таблицу, но исключает обновление или удале-
                                                 ние существующих. Модель такого хранилища
                                                 подходит для больших денормализованных
                                                 таблиц фактов, которые загружаются с ис-
                                                 пользованием пакетного процесса и доступны
                                                 по запросам только для чтения. Перемещение
                                                 больших таблиц фактов в модель хранения,
                                                 оптимизированную для добавления, исключа-
                                                 ет издержки на сохранность информации о ви-
Рис. 18
                                                 димости обновлений для каждой строки, эко-
                                                 номя около 20 байтов на строку. Это позволяет
в сочетании с параллельным файловым серве-       использовать более компактное хранилище на
ром БД Greenplum (gpfdist), достигают макси-     диске, поскольку не требуется сохранять ин-
мального параллелизма и высокой пропускной       формацию о транзакциях MVCC.
способности хранилища при оптимальном ис-           Пространство хранилища, занимаемое
пользовании всех сегментов.                      строками, которые обновляются и удаляются
   Полиморфное или гибридное хранение дан-       в AO-таблицах, не восстанавливается и не ис-
ных (Polymorphic Data StorageTM). БД Greenplum   пользуется так же эффективно, как в append-
может использовать оптимизированное для          only таблицах, поэтому модель AO-хранилища
приложений хранилище, предоставляя гиб-          не подходит для часто обновляемых таблиц
кость выбора между хранением данных на           (Heap). Она в основном предназначена для таб-
основе колонок или строк в рамках одной и        лиц, которые загружаются один раз, обновля-
той же системы баз данных. По умолчанию в        ются редко и часто запрашиваются для обра-
БД Greenplum используется модель хранения        ботки аналитических запросов [92, 103, 104].
Heap, что и в PostgreSQL. Таблицы Heap лучше        Append-оптимизированное хранилище обес-
всего подходят, например, для небольших таб-     печивает контрольные суммы для защиты дан-
лиц измерений, которые часто обновляются         ных, сжатия и ориентации строк/столбцов.
после их первоначальной загрузки. Для таблиц     Обе таблицы, ориентированные на строки или
Heap доступна одна ориентация: строчная. Та-     столбцы, могут быть сжаты. В соответствии
кая ориентация лучше всего отвечает рабочим      с принятой ориентацией данных в таблицах,
нагрузкам типа OLTP, где требуется частая за-    разделов хранения, параметры выполнения и
грузка данных. Ориентированные на колонки        компрессии могут быть настроены. Возмож-
таблицы не оптимизированы для операций           но разделение таблиц на нескольких уровнях.
записи, так как значения столбцов для строки     Так, одну таблицу можно разделить на верти-
должны быть записаны в разные места диска.       кальные разделы, часть из которых будет хра-
Колоночное хранилище, например, полезно          ниться в виде строк, а часть — как колоночные
для рабочих нагрузок хранилища с совокуп-        объекты. При этом для пользователя такая та-
ностью данных, рассчитанных на небольшое         блица будет выглядеть одним объектом. Ори-
количество столбцов [103, 104].                  ентированное на столбцы хранилище таблиц
   Для массовой загрузки и чтения данных         доступно только в AO-таблицах.
в БД Greenplum используется Append–опти-            Существует два типа компрессии данных в
мизированный (AO, append-optimized или           БД Greenplum для AO-таблиц: сжатие на уров-
append-only) формат хранения, обеспечиваю-       не строк применяется ко всей таблице; сжатие
щий преимущества производительности в            на уровне колонок — к определенным столб-
сравнении с таблицами Heap. Таблица append-      цам. Можно применять различные доступные
44                                     ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

алгоритмы сжатия на уровне колонок для раз-      гласованные данные, на которые не влияют
ных столбцов в одной таблице. Эти настрой-       другие параллельные транзакции.
ки не являются общесистемными, на одной            Поскольку MVCC не использует явные бло-
платформе можно задать несколько стратегий       кировки для управления параллелизмом,
[103, 104].                                      конфликт блокировки минимизируется, а БД
   Журнал опережающей записи WAL (Write-         поддерживает разумную производительность
Ahead Logging ) — это способ улучшения на-       в многопользовательских средах. Вместе с
дежности БД и восстановления данных после        тем, БД Greenplum предоставляет несколько
сбоев. В БД Greenplum используется техноло-      режимов блокировки для управления одно-
гия опережающей записи WAL для мастер-           временным доступом к данным в таблицах.
зеркалирования Master/Standby. В протоколе       Большинство команд автоматически получа-
WAL все изменения записываются в конец           ют соответствующие блокировки, чтобы га-
файла журнала перед применением, т.е. только     рантировать, что ссылочные таблицы не будут
после их занесения в журнал, чтобы обеспе-       отброшены или изменены несовместимыми
чить целостность данных для любых операций       способами во время выполнения команды.
внутри процесса. Все изменения записывают-       Для приложений можно использовать команду
ся последовательно и, как следствие, не силь-    LOCK для получения явных блокировок. Одна-
но замедляют процесс. Так, при отказе одного     ко использование MVCC обычно обеспечивает
или нескольких сегментов они помечаются          лучшую производительность [105].
как сбойные и вместо них запускаются их зер-       Разграничение зон видимости данных и
кальные сегменты, репликация данных для          прав доступа в более поздних моделях обеспе-
которых происходит с помощью используемой        чивается благодаря ролевой модели доступа
технологии опережающей записи. При импор-        (Role Based Access Control, RBAC), позволяющей
те больших файлов для аналитики, возможно        реализовать правила, динамически меняющи-
отключиться WAL для отдельных таблиц и по-       еся в процессе функционирования платформы
лучить более высокую производительность.         хранения и обработки данных. Так, например,
Ведение журнала WAL еще недоступно для зер-      можно создать схемы ограничения доступа к
калирования сегментов версии БД Greenplum        таблицам и другим объектам GPDB, а также к
5.8 [96].                                        строкам и столбцам отдельных таблиц.
   Управление параллелизмом в БД Greenplum.        GPORCA4 [106, 197] — оптимизатор запросов
Ключом к достижению наилучшей произ-             ORCA расширяет возможности планирования и
водительности есть равномерное распределе-       оптимизации унаследованного GPQUERY. Он
ние данных и рабочих нагрузок по большому        основан на модифицированной версии плани-
числу равнозначных сегментов, чтобы они сов-     ровщика запросов БД Postgres и предназначен
местно работали над задачей и выполняли ра-      для работы с базами данных MPP. Стратегия
боту одновременно. PostgreSQL и БД Greenplum     оптимизации запросов, нашедшая отраже-
не используют блокировки для контроля па-        ние в 90-х годах ХХ ст. в разработках Volcano/
раллелизма. Согласованность данных поддер-       Cascades Optimizers [108–110], получила свое
живается с использованием мультиверсионной       дальнейшее развитие в исследованиях и разра-
модели контроля конкурентных транзакций          ботках Greenplum/Pivotal. Побудительным мо-
MVCC (Multiversion Concurrency Control), кото-   тивом этому послужил прогрессирующий рост
рая обеспечивает изоляцию транзакций для         Big Data и повышенный интерес к обработке
каждого сеанса БД. При запросах к БД каж-        сложных аналитических запросов. Volcano —
дая транзакция считывается из моментального      общецелевой стоимостной оптимизатор запро-
снимка данных (версии), который не изменя-       сов на основе затрат, созданный на правилах
ется никакими параллельными транзакциями.        4
                                                  GPORCA – это оптимизатор запросов PQO (Pivotal
Это гарантирует, что транзакция считает со-      Query Optimizer) версии с открытым исходным кодом.
ISSN 0130-5395, УСиМ, 2019, № 2                                                                   45
А.А. Урсатьев

эквивалентности (над) алгебрами, использует      тимизация сверху вниз) на основе инфра-
стратегию нисходящего или целевого поиска        структуры оптимизации Cascades [109]. Он
для нахождения самого дешевого, малозатрат-      разработан специально для решения передо-
ного плана в пространстве возможных планов.      вой аналитики, создания планов запросов, вы-
Задействует эвристику для ограничения про-       полняющих сложные объединения при высо-
странства поиска выбранными планами, па-         кой производительности на больших массивах
раллельного их выполнения и распределения        данных. Поступающий в ORCA запрос анали-
ресурсов. Стоимость измеряется в дисковых        зируется и передается мастеру БД Greenplum
вводах-выводах. Первый реализованный ме-         то, что он считает самым быстрым планом
ханизм выполнения запросов, эффективно со-       выполнения; при этом запрос объединяется с
четающий расширяемость и параллельность в        метаданными (например, статистика, опреде-
вычислениях. Применяя стандартный ин-            ление таблиц, схемы и др.) и информацией о
терфейс между операторами алгебр, Volcano        кластере базы данных для создания последова-
позволяет легко добавлять новые операторы        тельности работ. ORCA может взаимодейство-
и правила эквивалентности, он расширяем          вать5 с несколькими БД и легко поддерживать
алгоритмами и типами данных. Запросы БД          новые операторы баз данных. Способность
Greenplum задействует модель процессора за-      работать за пределами системы баз данных как
просов оптимизатора, который принимает           автономный оптимизатор допускает его ис-
план выполнения и употребляет его для гене-      пользование для поддержки продуктов с раз-
рации дерева физических операторов, оценки       личными вычислительными архитектурами с
таблиц через физические операторы и предо-       использованием одного оптимизатора. Кроме
ставления результатов в ответ на запрос. Ге-     того, основные методы оптимизации являют-
нератор вырабатывает код на основе декла-        ся составными, что позволяет добавлять новые
ративных правил, логической и физической         операторы, трансформации, статистические/
алгебры. Оптимизация проводится с исполь-        стоимостные модели и другие методы. ORCA
зованием поиска по веткам и границам. Эф-        развертывает высокоэффективный многоя-
фективная поисковая система Volcano, осно-       дерный планировщик, который распределяет
вана на динамическом программировании и          отдельные мелкооцененные подзадачи опти-
запоминании (кэшировании эквивалентных           мизации в нескольких ядрах для ускорения
операторов) результатов выполнения функций       процесса оптимизации. Обеспечивает суще-
для предотвращения повторных вычислений,         ственное улучшение в сравнении с решения-
что улучшает расширяемость оптимизатора.         ми предыдущей системы и во многих случаях
  Основа оптимизации запросов Volcano/           предлагает ускорение запросов от 5(10)X до
Cascades [108, 109] базируется на системе пра-   1000X [110, 111]. GPORCA — с открытым исхо-
вил эквивалентности, в которой указано, что      дным кодом, построен как внешний плагин, и
результат конкретного преобразования дерева      доступен под лицензией Apache вер.2.0.
запросов совпадает с результатом исходного де-     Вместе с тем, GPORCA не является полно-
рева запросов. Ключевым аспектом этой струк-     функциональным в сравнении с текущим пла-
туры является эффективная реализация подхо-      нировщиком в GPDB. Когда GPORCA встречает
да, созданного на правилах преобразования.       оператор, который не поддерживается в насто-
  Оптимизатор Cascades — объектно-ориенти-       ящий момент, он возвращается к унаследован-
рованная реализация оптимизатора запросов        ному планировщику [106, 111].
Volcano. Pivotal ORCA — реализация автоном-
                                                 5
ных каскадов, поддерживает многопоточный           Взаимодействия оптимизатора и системы баз дан-
поиск.                                           ных – это обмен метаданными. Например, оптимиза-
                                                 тору, возможно, необходимо знать, определены ли
  ORCA [110] — это современный оптимиза-         индексы на таблице, чтобы разработать эффективный
тор запросов в стиле Volcano (top-down — оп-     план запроса.
46                                     ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

Новые технологии обработки                       Таблица 1. Совместимость реализаций Hadoop
                                                   Hadoop Distribu-        Version         gp_hadoop_
Apache Hadoop и HDFS или MapR-FS. Впервые               tion                               target_version
ЕМС анонсировала свою программу развития
аналитики Big Data в 2011 г. В частности, была
                                                     Pivotal HD        Pivotal HD 3.0          gphd-3.0
представлена комплексная стратегия дистри-
буции, интеграции и поддержки ПО с откры-                                Pivotal HD            gphd-2.0
                                                                           2.0, 2.1
тым исходным кодом Apache Hadoop. В резуль-
                                                                       Pivotal HD 1.0 1
тате слияния БД Greenplum с Hadoop появилась
возможность в рамках одного хранилища об-          Greenplum HD       Greenplum HD 1.2         gphd-1.2
                                                                      Greenplum HD 1.1
рабатывать как структурированные, так и не-                                                  gphd-1.1 (de-
структурированные данные [112, 113].                                                            fault)
  Судя по технической документации на обо-            Cloudera          CDH 5.2, 5.3             cdh4.1
рудование, Greenplum давно готовилась к раз-                            CDH 5.0, 5.1             cdh4.1
витию работ по расширению типов данных в
                                                                      CDH 4.12 – CDH             cdh4.1
аналитических исследованиях. Так, GPDB v. 3.2                               4.7
выпуска 2008 г. представляет ряд новых функ-
                                                  Hortonworks           HDP 2.1, 2.2              hdp2
ций, улучшений производительности и ста-           Data Platform
бильности, внутренних изменений в систем-
                                                       MapR3              MapR 4.x             gpmr-1.2
ных каталогах. Одна из них — параллельные
                                                                      MapR 1.x, 2.x, 3.x       gpmr-1.0
распределенные вычисления на MapReduce.
Greenplum предоставила возможность програм-        Apache Hadoop             2.x               hadoop2
мистам, знакомым с парадигмой MapReduce,         Notes:
писать пользовательские функции map и reduce       1. Pivotal HD 1.0 is a distribution of Hadoop 2.0
и отправлять их в механизм параллельного по-       2. For CDH 4.1, only CDH4 with MRv1 is supported
тока данных Greenplum для обработки. Система       3. MapR requires the MapR client
GPDB взяла заботу о распространении входных
данных, выполнении программы на узлах клас-
тера, возможных сбоях в работе и управлении      HDFS для хранения и Hadoop MapReduce для
требуемой связью между узлами. Для обработ-      программирования заданий параллельной об-
ки функций map и reduce, они должны быть         работки и вычислений [115]. Такие компании,
определены в специально отформатирован-          как Cloudera, Hortonworks и MapR предоставля-
ном документе Greenplum MapReduce, который       ют коммерческие услуги по поддержке инфра-
затем передавался в клиентскую программу         структуры Hadoop, обеспечивающей закон-
Greenplum MapReduce (gpmapreduce) для выпол-     ченную функционально развитую платформу
нения в среде MPP БД Greenplum [114].            для аналитики и управления данными бла-
  Hadoop в те годы быстро стал предпочти-        годаря его интеграции с рядом других акту-
тельным решением для аналитики Big Data          альных проектов [116]. EMC и вошедшая в ее
при работе с неструктурированной информа-        состав Greenplum, крупнейшие поставщики ре-
цией, но из-за нехватки навыков и большого       шений для хранения и обработки данных, так-
бремени программного обеспечения посчита-        же продвигают свой собственный дистрибутив
ли Hadoop дорогостоящим и неприемлемым           Hadoop. По-видимому, этим и объясняется
для промышленной реализации. Hadoop — это        присутствие в технической документации, на-
проект Apache Software Foundation, предостав-    пример, на GPDB v.4.3.6.1 раздела о совмести-
ляющий среду для хранения данных и плат-         мости реализаций Hadoop (табл. 1) от разных
форму обработки с двумя основными компо-         производителей [117]. Первый релиз (GPDB
нентами: распределенной файловой системой        v.4.3) продукта содержал дистрибутив Hadoop
ISSN 0130-5395, УСиМ, 2019, № 2                                                                             47
А.А. Урсатьев

Pivotal HD, Greenplum НВ, Cloudera, Greenp-     завершены, а не прерваны как в хранилище
lum MR.                                         Apache Hadoop. В случае сбоя мастер-процесса,
   Стратегия Hadoop от EMC была примерно        другая реплика прозрачно и немедленно берет
такова: зная не понаслышке о недостатках те-    на себя задачу обслуживания без прерывания
кущей версии распределенной файловой си-        процесса. MapR также поддерживает сжатие
стемы HDFS, EMC захотела создать уровень        на уровне файловой системы и делает множе-
хранения, который улучшил бы HDFS с точки       ственные копии метаданных в кластере для
зрения производительности, доступности и        обеспечения доступности. Он распространяет
простоты использования. Но EMC обратила         метаданные по узлам (не требует их хранения в
внимание на качественный продукт компании       ОЗУ), позволяя одному кластеру поддерживать
MapR [118–120], не желая затрачивать свой ин-   их значительное количество. Это отличается от
женерный опыт, время и усилия на улучшение      HDFS, сохраняющей все метаданные файлов в
HDFS. MapR Technologies выпустила большой       памяти одной машины — Name Node.
набор инструментария для данных, основан-          EMC использовала технологию, разработан-
ный на Apache Hadoop, с собственной альтер-     ную компанией MapR, для платформы ана-
нативой хранилищу HDFS — систему MapR           литики Hadoop в продуктах Greenplum. По за-
(MapR-FS), представляющую собой клас-           явлению MapR [118], технология, которую она
терную файловую систему, обеспечивающую         разработала на вершине Hadoop, поддерживает
высокопроизводительное хранилище корпо-         моментальные снимки для защиты и восста-
ративного уровня для больших данных. Про-       новления данных, исключает отдельные точки
граммное обеспечение имеет как коммерче-        отказа и повышает производительность ба-
скую, так и бесплатную версию. Первое из них    зовой инфраструктуры Hadoop в два-пять раз
содержит репликацию, моментальные снимки        в сравнении со стандартным дистрибутивом
и зеркалирование файлов данных, восстанов-      Apache Hadoop.
ление мастера MapReduce (Job Tracker) [115] и      Что касается компаний EMC и Cloudera, то
коммерческую поддержку. Оно также содер-        они используют разные подходы к улучшению
жит средство для перезапуска главного про-      качества HDFS. Не привязывая себя к проекту
цесса JobTracker в течение нескольких секунд    Apache Hadoop, EMC может решать свои зада-
после сбоя и обеспечивает инициализацию         чи, используя высокую доступность и произ-
подчиненных процессов TaskTrackers для пов-     водительность, а также расширенные функции
торного подключения. Возможная задержка         MapR, такие как зеркалирование и реплика-
в этом случае быть при выполнении заданий,      ция. Cloudera, являясь основным вкладчиком
но выполняемые работы будут продолжены и        Apache Hadoop, будет включать изменения в
                                                архитектуру и функции HDFS, которые офи-
                                                циально примет Apache [120]. Дистрибутив
                                                Hadoop от EMC не содержит официальной вер-
                                                сии кода Apache, он основан на коде Hadoop от
                                                Facebook (sub req'd)6 , который был оптимизи-
                                                рован для масштабируемости и многосайтово-
                                                го развертывания [119].
                                                   Интеграция платформ Greenplum и Hadoop.
                                                Внешние таблицы в сочетании с програм-
                                                мой параллельного распределения файлов
                                                6
                                                  Sub requirement — отдельные компоненты, состав-
                                                ляющие единое требование; конкретные детали того,
                                                что необходимо для выполнения этого требования
Рис. 19                                         (Source: tada.uic.edu.).
48                                    ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

Greenplum (gpfdist) обеспечивают параллелизм,
используя ресурсы всех сегментов GPDB при
загрузке или выгрузке данных. БД Greenplum
также использует параллельную архитекту-
ру Hadoop для эффективного чтения и записи
файлов данных из таблиц распределенной фай-
ловой системы HDFS посредством протокола
gphdfs. Обмен данными между платформами
Hadoop и Greenplum возможен посредством за-
писываемых внешних таблиц (Writable External
Table7), которые выводят данные в файлы.              Рис. 20
Когда БД Greenplum устанавливает связь с фай-
лами HDFS, данные считываются параллельно
с узлов HDFS в сегменты GPDB для обработки.           вания и сборки Dremel, применяемые Google
БД Greenplum определяет соединения между              при интерактивном анализе наборов данных
сегментами и узлами. Внешняя таблица, рас-            десятков-сотен терабайт за считанные секун-
положенная на распределенной файловой си-             ды на основе MapReduce [124, 125]. Parquet под-
стеме Hadoop, приведена на рис. 19.                   держивает очень эффективную компрессию и
    Разграниченный текст (ТЕXТ) — един-               кодирование, позволяет использовать схемы
ственный формат, допустимый в GPDB v. 4.1             сжатия для каждого столбца и поддерживает
для чтения и записи внешних таблиц файлов             добавление большего количества кодировок
HDFS [91], в старших версиях БД Greenplum до-         по мере их создания и реализации.
полнительно реализованы пользовательские                 Одной из особенностей версии БД Greenplum
форматы (двоичные, Pig, Hive и т.д.) [121, 122].      4.2 является использование файловой си-
Так, в GPDB v. 4.3.6.1 [123] реализовано соз-         стемы Hadoop (HDFS) для создания внешних
дание и поддержка внешних таблиц для фор-             таблиц, что позволяет избежать значительных
матов файлов Avro и Parquet в системе Hadoop          затрат времени загрузки данных [91, 126]. В
(HDFS) с использованием протокола gphdfs              БД включена возможность предоставления
для чтения и записи файлов. Файл Avro хранит          привилегий для протокола gphdfs владельцу
схему как определение данных, так и данные            внешних таблиц [121 с.85], необходимых для
вместе в одном файле, что облегчает динами-           их создания, которые обращаются к файлам
ческое понимание информации, хранящейся в             на HDFS. Кроме того, предоставлен программ-
нем, программам. Схема Avro находится в фор-          ный соединитель Hadoop Connector, обеспе-
мате JSON, данные — в двоичном формате, что           чивающий высокопроизводительный парал-
делает его компактным и эффективным. Файл             лельный импорт и экспорт сжатых и несжатых
Parquet предназначен для использования сжа-           данных из кластеров Hadoop. Чтобы дополни-
того, эффективного представления колоноч-             тельно оптимизировать потребление ресурсов
ных данных для проектов в экосистеме Hadoop.          во время загрузки, данные, пользовательского
Он поддерживает сложные вложенные струк-              формата в Hadoop, теперь могут быть преоб-
туры данных и использует алгоритмы чередо-            разованы в формат GPDB с использованием
7
 Записываемые внешние таблицы, посредством кото-      MapReduce, а затем импортированы в нее. Это
рых данные выводятся в файлы, используют прог-        обеспечивает значительно более эффектив-
рамму параллельного файлового сервера Green-          ный и гибкий обмен данными между Hadoop и
plum (spfdist) или интерфейс распределенной фай-      БД Greenplum [127]. Последняя, по заявлению
ловой системы Hadoop (gphdfs). Загрузить и записать
                                                      разработчика, поддерживает параллельную
пользовательские данные без HDFS можно, вос-
пользовавшись поддержкой БД Greenplum и форматами     обработку SQL и MapReduce при объемах дан-
импорта и экспорта данных ТЕXТ и CSV.                 ных, варьируемых от сотен гигабайт, от десят-
ISSN 0130-5395, УСиМ, 2019, № 2                                                                        49
А.А. Урсатьев

                                                 вающий множество очередей запросов и на-
                                                 зываемым агентом PXF, порождает поток для
                                                 каждого сегмента — экземпляра базы данных
                                                 (segment instance) на segment host. PXF, с одной
                                                 стороны, обменивается данными параллельно
                                                 с segment instances через REST API, с другой —
                                                 агенты PXF на segment hosts параллельно взаи-
                                                 модействуют с платформой HDFS.
                                                    Имеется поддержка основных сервисов сте-
                                                 ка Hadoop и параллельная выгрузка данных из
                                                 сторонних СУБД через JDBC. Расширение PXF
                                                 предоставляет коннекторы для хранилищ дан-
                                                 ных Hadoop, Hive и HBase, которые определяют
                                                 профили, поддерживающие форматы: Binary и
Рис. 21                                          ТЕXТ, Avro, JSON, RCFile, Parquet, SequenceFile
                                                 и ORC. PXF-коннекторы включают клиенты
ков до сотен терабайт, до нескольких петабайт.   используемых хранилищ данных на каждом
Рис. 20 иллюстрирует процесс передачи фай-       segment host БД Greenplum [130].
лов данных с кластера Hadoop в БД Greenplum          Расширение PXF реализует протокол с име-
по инициированному ею запросе (1) на чтение.     нем pxf, используемый для создания внешней
Запрос (1) поступает на NameNode (Hadoop),       таблицы, которая ссылается на данные в инте-
который управляет доступом к запрошенным         грируемом хранилище. После того, как расши-
файловым блокам данных. NameNode отправ-         рение PXF зарегистрировано в базах данных, с
ляет (2) инструкции DataNode для предостав-      которыми планируется использовать фрейм-
ления блоков файлов в БД Greenplum.              ворк для доступа к внешним данным, назна-
   Вместе с тем, нельзя не согласиться с мне-    чены привилегии для протокола pxf тем поль-
нием [128], что в настоящее время большин-       зователям/ролям, которым требуется доступ,
ство аналитических баз данных и приборов         используется команда для создания внешней
интегрируются с Hadoop, но по-прежнему стра-     таблицы. При выполнении (пользователем
дают от задержки отправки данных по сети из      или приложением) запроса на данные в HDFS,
кластеров Hadoop в базу данных и обратно.        Master Host отправляет его всем серверам сег-
  Доработка Greenplum параллельного интер-       ментов. Каждый segment instance связывается с
фейса произведена в новом релизе [129] — это     агентом PXF, запущенным на его segment host,
платформа расширения БД Greenplum (PXF) —        и когда агент PXF получает запрос от segment
фреймворк, позволяющий обмениваться дан-         instance, он вызывает API Java HDFS для полу-
ными со сторонними гетерогенными систе-          чения информации метаданных из NameNode
мами. Взаимодействие PXF с HDFS поясняет-        для файла HDFS и предоставляет ее в экзем-
ся рис. 21. На нем БД Greenplum представлена     пляр сегмента. Экземпляр сегмента использу-
главным сервером (Master Host) и несколькими     ет свою базу данных gp_segment_id Greenplum и
серверами сегментов (Segment Host). Фрейм-       информацию File Block8, содержащуюся в ме-
ворк PXF состоит из протокола БД Greenplum,      8
                                                  FCB (File Control Block) — это внутренняя структура
клиентской библиотеки C, отвечающей ин-          файловой системы, используемая в DOS для доступа
тегрируемым хранилищам данных, и службы          к файлам на диске. Блок FCB содержит информацию
Java. Написанное расширение на Java пред-        о имени диска, имени и типе файла и другой
                                                 информации, которая требуется системе при доступе
ставляет собой отдельный процесс JVM PXF на      или создании файла — https://www.webopedia.com/
каждом segment host кластера Greenplum. Этот     TERM/F/File_Control_Block_FCB.html. В Hadoop при
длительный процесс, одновременно обслужи-        помещении файла на HDFS, он разбивается на блоки,
50                                     ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

таданных, для присвоения запросу определен-            Hadoop. Community Edition (CE) полностью сер-
ной части данных. Затем экземпляр сегмента             тифицирована на совместимость с open source и
информирует агента PXF о необходимости чте-            поддерживает стек Apache Hadoop, состоящий
ния отобранных данных, которые могут быть              из распределенной файловой системы HDFS,
на одном или нескольких HDFS DataNodes.                MapReduce, HBase, Zookeeper и Hive, а также
Агент PXF вызывает API HDFS Java для чтения            обеспечивает отказоустойчивость для Name
данных и доставки их на segment instance.              Node9 в HDFS и мастера Job Tracker в Hadoop
  Расширение PXF более значимо для интег-              MapReduce. Этим обеспечивается высокая до-
рации, в сравнении с предыдущими решения-              ступность кластера, позволяющая предотвра-
ми, так как исключает сетевой компонент при            тить потерянные задания, устранить переза-
обмене, имеет большую гибкость и возмож-               грузки и болезненные инциденты при сбоях.
ность подключать сторонние системы, написав              В свободно распространяемое ПО EMC
свой коннектор. В [131] приведены соображе-            Greenplum CE10 входят:
ния о возможности интеграции БД Greenplum                Greenplum Database CE — ведущий в отрас-
со сторонними СУБД через JDBC.                         ли продукт с MPP обработкой для крупно-
                                                       масштабной аналитики и хранилищ данных
                                                       следующего поколения;
Отличия ПО интегрированных                               MADlib — библиотека аналитических алго-
                                                       ритмов с открытым исходным кодом, обеспе-
систем EMC Greenplum HD
                                                       чивающая параллельные реализации матема-
Enterprise и Community с Hadoop
                                                       тических, статистических и машинных методов
Предприятия предъявляют чрезвычайно вы-                обучения для структурированных и неструкту-
сокие требования к системам обработки, ког-            рированных данных;
да дело доходит до производственных данных.            Alpine Miner11 представляет собой интуитив-
Две эти наработки в части реорганизации                но понятный инструментарий для интеллек-
Hadoop для обеспечения высокой надежности              туального анализа данных, обеспечивающий
и устойчивости в случае отказов его отдельных          быстрое моделирование для оценки, использу-
точек (Name Node и Job Tracker), доступности           ет аналитику и специально предназначен для
и разработки приемлемого механизма обмена              приложений с Big Data.
данными между платформами в виде внеш-                   Базы данных Greenplum и Greenplum HD явля-
них таблиц, подобно симбиозу партнеров по-             ются дополняющими технологиями, которые
зволили достичь функциональности хранения              в совокупности предоставляют решение для
и обработки данных в решениях Community и              анализа структурированных и неструктуриро-
Enterprise. Отличие этих двух модификаций              ванных данных. При совместном использо-
систем состоит в том, что EMC Greenplum HD             вании аналитики могут выполнять сложные
Community Edition использует бесплатную, с             интерактивные исследования, используя воз-
открытым исходным кодом, версию распреде-              9
                                                          До Hadoop v2.0.0 Name Node было единой точкой
ленной файловой системы MapR-FS M3 Edition,            отказа (SPOF, Single Point Of Failure) в кластере HDFS.
основанную на ветке кода Apache Hadoop                 С Zookeeper функция высокой доступности HDFS
0.20.1. — оптимизированной версии Facebook             решает эту проблему, предоставляя возможность
                                                       запуска двух избыточных Name Node в одном кластере
                                                       в конфигурации Active/Passive с горячим резервом —
размещаемые на DataNodes — последние хранят
                                                       https://hadoopecosystemtable.github.io/
блоки, а не файлы. Метаданные находятся на Name
                                                       10
Node, они содержат файл в Block mapping, запоминают       EMC Greenplum Introduces Free Community Edition of ""Big
расположение блоков в DataNodes, активные узлы и       Data"" Tools for Developers and Data Scientists – https://www.emc.
др. метаданные. Все они хранятся в памяти NameNode     com/about/news/press/2011/20110201-02.htm
— https://www.quora.com/What-does-the-term-metadata-   11
                                                          Alpine Miner Visual Modeler — инструмент анализа
mean-in-Hadoop                                         независимого разработчика.
ISSN 0130-5395, УСиМ, 2019, № 2                                                                                     51
А.А. Урсатьев

                                               вая система Hadoop (HDFS) предназначена для
                                               записи только с добавлением12 (append-only) и
                                               чтения только из закрытых файлов.
                                                  Протокол сетевой файловой системы
                                               (Network File System, NFS) [135] обеспечивает
                                               приложениям прямой доступ непосредственно
                                               к кластеру, позволяя передавать потоки данных
                                               в режиме реального времени. Стандартные
                                               приложения и инструменты напрямую обра-
                                               щаются к слою хранения MapR-FS с исполь-
                                               зованием протокола NFS. Устаревшие системы
Рис. 22                                        получают доступ к данным, а традиционные
                                               операции ввода-вывода файлов работают в
                                               обычной файловой системе UNIX. Удаленный
                                               клиент может монтировать кластер MapR для
                                               перемещения данных в кластер и из него.
                                                  Реализация MapR Direct Access NFS™. На каж-
                                               дом узле кластера MapR есть сервис FileServer,
                                               роль которого во многом сходна с Data Node в
                                               файловой системе Hadoop HDFS. Кроме того, в
                                               кластере может быть одна или несколько служб
                                               NFS Gateway13. Во многих развертываниях сер-
Рис. 23                                        вис работает на каждом узле кластера, наряду
                                               с FileServer. Запуск нескольких серверов NFS
можности Greenplum SQL и расширенные ана-      Gateway обеспечивают устойчивость к отказу.
литические функции по данным в Hadoop и/       Виртуальный IP-адрес (VIP) доступа к NFS
или в БД Greenplum. Доступ к данным и их пе-   автоматически переносится в случае сбоя от
ремещение между платформами упрощаются с       одного сервиса NFS Gateway к другому, так что
помощью внешних таблиц, чтобы обеспечить       клиенты, подключившиеся к кластеру через
быстрый и простой параллельный обмен дан-      IP, могут продолжить чтение и запись данных
ными.                                          практически без задержек. В типичном раз-
  EMC Greenplum HD Enterprise Edition — из-    вертывании для равномерного распределения
вестна также как Greenplum MR — интегрирует    клиентов между различными серверами шлю-
дистрибутив MapR M5 Hadoop (обновленная        за NFS (т.е. VIP) используется простая система
версии M3 с высокой доступностью и функ-       балансировки нагрузки, такая как цикличе-
циями защиты данных), заменяя HDFS на соб-     ский DNS. В кластере MapR служба шлюза NFS
ственную файловую систему MapR-FS [134].       12
                                                  Когда проект Apache Hadoop создавался, он дол-
Архитектура системы хранения, используемая     жен был использоваться для веб-сканирования и
MapR-FS, написана на C/C ++ и устраняет кон-   индексирования Интернета. Это требовало не более
куренцию (lock contention), исключая влияние   чем парадигмы с однократной записью (или только с
сборки мусора Java на производительность,      добавлением — or append-only), которая легла в основу
                                               реализации HDFS. Веб-сканирование — чрезвычайно
что свойственно Apache Hadoop. MapR-FS
                                               ограниченный случай среди всех применений, которые
представляет собой распределенную файловую     действуют сегодня для Apache Hadoop [Get Real with Ha-
систему произвольного чтения и записи, по-     doop: Read-Write File System – https://mapr.com/blog/get-
зволяющую приложениям одновременно счи-        real-hadoop-read-write-file-system/].
тывать и записывать данные непосредственно     13
                                                 MapR Direct Access NFS — https://mapr.com/resourc-
в кластер. Напротив, распределенная файло-     es/mapr-direct-access-nfs/
52                                    ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

получает запросы от клиента и преобразует их          держиваемые экосистемные проекты, а также
в запросы RPC14 к соответствующим службам             средства взаимодействия с ними приведены
FileServer. Взаимодействие с кластером MapR           на рис. 23. Взаимодействие с Apache Hadoop,
по протоколу NFS показано на рис. 22.                 HDFS и MapReduce происходит посредством
   Поддержка случайных чтений и записи не-            API MapR. Архитектура Hadoop 2.x и YARN под-
обходима для обеспечения прямого доступа              держивается MapR [115].
NFS и, в более общем случае, к любому виду               MapR предоставляет несколько уникальных
доступа для отличных от Hadoop приложений.            функций, которые затрагивают общие про-
Помимо прямого доступа, предоставляемо-               блемы с Apache Hadoop [136]:
го NFS, есть некоторые другие особенности                 защита данных (MapR Snapshots) — поддер-
MapR-FS. Кластер доступен как каталог в ло-           живает согласованные моментальные снимки
кальной файловой системе и приложения на              для файлов и таблиц, зеркалирование и репли-
клиентском узле работают по протоколу NFS             кацию, в том числе и удаленную, для полного
с данными файловой системы MapR таким                 восстановления данных;
же образом, как при доступе к ним на локаль-               аварийное восстановление (Disaster Reco-
ном диске, используя его в режиме реального           very) — MapR обеспечивает бесперебойную ра-
времени. Предоставляет также специальные              боту кластера и службы аварийного восстанов-
функции для управления данными и высокой              ления с помощью настраиваемого зеркалиро-
доступности (HA), такие как логические тома –         вания, эффективно использующего ресурсы
способ группировки данных и применения                хранилища, процессора и пропускную способ-
политики во всем наборе данных, использую-            ность кластера;
щиеся для распространения метаданных в                     масштабируемая архитектура без единой
клас-тере и для резервного копирования дан-           точки отказа (SPOF) — платформа конвер-
ных; контейнеры – абстрактный объект, хра-            гентных данных MapR обеспечивает высокую
нящий файлы и каталоги в MapR-FS, напри-              доступность для стека компонентов Hadoop.
мер, может содержать информацию о про-                Кластеры MapR, в отличие от других дистрибу-
странстве имен, фрагментах файлов или части           тивов Hadoop, не используют Name Node, при-
таблицы для тома, к которому принадлежит              водящего к сбоям кластера, и обеспечивают
контейнер; предоставляет услуги отслеживания          сохранение доаварийного состояния для Job
местоположения каждого контейнера и др.               Tracker в Hadoop MapReduce и механизма пря-
   MapR [136] — это полный дистрибутив кор-           мого доступа к кластеру MapR по протоколу
поративного класса для Apache Hadoop. Плат-           NFS без какой-либо специальной настройки.
форма конвертируемых данных (Converged                В Apache Hadoop, с предоставлением возмож-
Data Platform) MapR предоставляет единое              ности запуска двух избыточных Name Node
решение для структурированных (таблиц) и              (HA) в одном кластере, Name Node HA обеспе-
неструктурированных данных (файлов), раз-             чивает переход на другой ресурс, но без отка-
работана для повышения надежности, про-               та, ограничивая численность узлов и создавая
изводительности и простоты использования              сложные проблемы с конфигурацией. Высо-
Hadoop. В дистрибутиве MapR представлен               кая доступность JobTracker в Apache Hadoop не
полный стек Hadoop, включающий файловую               сохраняет состояние рабочих заданий. Отказо-
систему MapR-FS, систему управления база-             устойчивость для JobTracker связана с переза-
ми данных MapR-DB NoSQL, потоки MapR и                пуском всех незавершенных заданий и услож-
семейство проектов Hadoop. Высокоуровне-              няет конфигурацию фреймворка;
вое представление платформы конвергентных                  производительность — MapR использует
данных MapR, ее основные компоненты и под-            индивидуальные модули ввода-вывода, ком-
14
 Remote Procedure Call (RPC) – удаленный вызов про-
                                                      мутации, повторной синхронизации и адми-
цедур (RPC).                                          нистрирования. Эти архитектурные элементы
ISSN 0130-5395, УСиМ, 2019, № 2                                                                        53
А.А. Урсатьев

                                                 выполняется их сортировка (sorting), необхо-
                                                 димая для каждой отдельной задачи Reduce,
                                                 и передача сегмента MOF в reducer в качестве
                                                 входного сигнала. В свою очередь, фаза сор-
                                                 тировки в MapReduce охватывает и слияние
                                                 (merger). Промежуточные результаты, пред-
                                                 ставляющие собой записи данных в виде пар
                                                 ключ-значение (key-value), разделяются меж-
Рис.24                                           ду reducers и сортируются автоматически по
                                                 ключу. Каждый reducer получает все значения
                                                 (value), связанные с одним и тем же ключом,
                                                 т.е. в процессе сортировки MOFs также проис-
                                                 ходит их объединение в порядке соответствия
                                                 ключей в записях данных. Фазы shuffle и sort в
                                                 Hadoop происходят одновременно и выполня-
                                                 ются MapReduce Framework. Результат задачи
                                                 Reduce сохраняется в файловой системе HDFS
                                                 (рис. 24 и 25).
                                                   Перетасовка и сортировка в Hadoop MapRedu-
                                                 ce вообще не выполняются, если указываются
                                                 нулевые (zero) reducers (setNumReduceTasks (0).
                                                    Главный процесс JobTracker координирует
                                                 задания в кластере (рис. 25) и назначает про-
                                                 цессы TaskTracker на узлы для координации
Рис.25                                           выполнения задач. В каждом TaskTracker при-
                                                 сутствует встроенный HttpServer, который соз-
                                                 дает множественные HttpServlets для каждого
позволяют кластерам MapR работать со скоро-      запроса reducer на получение результатов обра-
стями, близкими к максимально допустимыми        ботки сегментов данных от mappers. MOFCopier
базовым оборудованием. Кроме того, техноло-      используется для сбора этих результатов, пред-
гия DirectShuffle, построенная MapR на основе    назначенных задачам Reducers. Промежуточ-
ряда улучшений привнесенных в структуру          ные результаты считываются с Local Disks и
MapReduce, использует преимущества MapR-         транспортируются HttpServlets к MOFCopier
FS для обеспечения высокой производитель-        посредством HTTP запросов. Модель сетевого
ности и управляемости кластера, а механизм       взаимодействия, используемая для пересылки
прямого доступа к кластеру по протоколу NFS      данных в Apache Hadoop, приведена на рисун-
упрощает прием и доступ к данным [136].          ке 26. Используемые стандартные средства
   Высокая производительность и надежность       языка Java для работы с HTTP запросами и со-
выполнения задач MapReduce (Vers.1) дости-       кетами являются узким местом в работе всей
гается технологией DirectShuffle [137, 138]. В   системы, поскольку использование Java Virtual
выпусках Apache Hadoop до версии 1.55.X [138]    Machine для доступа и перемещения данных
процесс [139–141], посредством которого про-     при помощи потоков FileInputStream работает
межуточные выводы обработки сегментов дан-       гораздо медленнее, чем реализации, например,
ных от mappers (MOF, MapOutputFile) перено-      на языке С [142]. Архитектура системы хране-
сятся на reducers, называется перетасовкой       ния файловой системы MapR-FS написана на
(shuffling). MOFs по завершению задачи Map       С/С++ и вместо HTTP использует соединения
сохраняются на локальных дисках. При этом        удаленного вызова процедур RPC.
54                                     ISSN 0130-5395, Control systems and computers, 2019, № 2
Большие данные. Аналитические базы данных и хранилища: Greenplum

   Кроме того, в фазе Shuffle перетасовки про-
межуточных результатов задачи MapReduce
возникает проблема роста сетевой нагрузки
в Hadoop из-за большого объема сетевого об-
мена. Перетасовка данных в пяти процентах
больших заданий может потреблять более 100
процентов пропускной способности сети кла-
стера, и, что еще хуже, производительность
Hadoop с увеличением среднего размера дан-
ных, растет нелинейно [142]. Чрезмерная на-
грузка на пропускную способность сети может
быстро насытить сетевые связи тех машин,
которые участвуют в фазе reduce [143]. Перета-
совка данных в фазе Shuffle, по существу, ста-
новится доминирующим источником сетевого
трафика и узким местом в производительности
в Hadoop.
   MapR обеспечивает повышение производи-
тельности в фазе перетасовки MapReduce. Эта
фаза включает в себя изготовление многих ко-     Рис. 26
пий и значительное число координаций между
узлами в кластере, что приводит к чрезмерно-     Возможно использование нескольких сетевых
му росту сетевой нагрузки в Hadoop. Другое,      адаптеров посредством соединения на уровне
поскольку HDFS находится поверх файловой         RPC процедур. Для сравнения, операция пере-
системы Linux, большое число операций вво-       тасовки в других дистрибутивах Hadoop может
да/вывода (I/O) снижает производительность       использовать только один сетевой адаптер (те-
клстера. Кроме того, вывод результатов mappers   оретически, можно применить транкирование
на локальные диски создает конкуренцию за        портов, но прирост производительности будет
дисковое пространство между локальными и         минимальным в сравнении с балансировкой
распределенным хранилищем.                       нагрузки на уровне RPC в MapR) [137, 138].
  MapR, вместо записи промежуточных дан-           Особенности реализации Direct Shuffle на
ных на локальные диски, контролируемые опе-      MapR 6.0 Platform с YARN приведены в [144].
рационной системой, обращается непосред-         Подход MapR к Direct Shuffle привел к ускорен-
ственно к томам MapR-FS на локальных узлах.      ному от двух до пяти раз выполнению заданий
Это повышает производительность Hadoop           MapReduce [118, 138]. Производительность
и снижает спрос на локальное дисковое про-       Greenplum HD EE в сравнении со стандартной
странство. В MapR любые закачанные (spilled)     версией Apache Hadoop, по оценкам EMC, также
данные хранятся в MapR-FS, что делает их до-     улучшена на эту величину [145]. Слияние тех-
ступными напрямую. Прямое перемещение            нологий EMC Greenplum DB и предварительно
использует базовый уровень хранения и его        интегрированного, проверенного и упрочен-
возможности (MapR-FS написана на С/С++           ного дистрибутива MapR Technologies для стека
и содержит протокол NFS). Перетасовка в          Apache Hadoop, осуществляет совместную об-
MapR-FS намного быстрее, потому что MapR         работку разных типов данных в едином, бес-
использует высоко оптимизированные эффек-        шовном решении. Greenplum HD EE полностью
тивные соединения удаленного вызова про-         совместима с Apache Hadoop Interface, так как
цедур (RPC) для передачи данных непосред-        дистрибутив MapR Hadoop позволяют напря-
ственно из любой точки сети [134, 135, 137].     мую обмениваться данными через протокол
ISSN 0130-5395, УСиМ, 2019, № 2                                                                   55
Вы также можете почитать