Методы и средства обработки данных - 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
Вы также можете почитать