Долгое время основной сферой применения суперкомпьютеров оставались лишь интенсивные расчеты над массивами структурированных данных, однако проблема Больших Данных заставила задуматься над использованием высокопроизводительных систем для обработки огромных потоков неструктурированных данных различной природы. И здесь оказалось, что традиционные архитектуры на базе вычислительных модулей и узлов хранения плохо пригодны для этого.
В суперкомпьютерной индустрии давно используется понятие DIS (Data Intensive Systems — приложения с интенсивным и нерегулярным доступом) и имеются решения для выполнения таких приложений [1]. С другой стороны, аналитики предложили термин высокопроизводительная аналитика данных (High Performance Data Analytics, HPDA), обратив внимание на то, что технологии Больших Данных и высокопроизводительных вычислений (High Performance Computing, HPC) могут применяться не только в типичных для суперкомпьютеров сферах, например в СКСН (суперкомпьютеры стратегического назначения) [2], но и в бизнесе. В категорию HPDA попадают задачи, связанные с обработкой больших объемов данных и сложными расчетами. В основе решений HPDA лежат способы интенсивной обработки данных, позволяющие, например, интегрировать и анализировать накопленную компаниями разнородную информацию, а также данные от партнеров, поставщиков и клиентов. Среди возможных сценариев применения HPDA можно назвать информационную безопасность, планирование маркетинговых кампаний, создание новых лекарств, медицинскую диагностику и лечение, программы удержания клиентов, «умные» энергораспределительные сети, составление прогнозов погоды и развитие архитектуры социальных сетей.
Суперкомпьютеры все чаще применяются для выполнения сложных аналитических приложений — по данным аналитиков, около 70% суперкомпьютерных ЦОД используются именно для решения информационных задач анализа Больших Данных, причем в среднем около 30% времени выделяется под задачи HPDA. Однако сегодня более 80% важных для бизнеса данных являются неструктурированными (показания различных датчиков, сведения из журналов регистрации событий, электронная почта, сведения из социальных сетей, мультимедиа, данные о финансовых транзакциях и геопозиционирование), что роднит современные приложения работы с Большими Данными и приложения DIS: слабая временная локализация, то есть обращения к одним и тем же участкам памяти или близко расположенным источникам данных могут быть достаточно редкими; приложения работают с большим объемом памяти, позволяющим в ряде случаев загрузить в оперативную память целиком базу данных; невозможность прогнозирования адресов участков памяти и источников данных, к которым происходят обращения. Все это сводит на нет такие привычные для традиционных архитектур методы повышения производительности, как увеличение объемов памяти разных уровней или применение различных схем предварительной накачки данных путем, например, их размещения ближе к вычислителю.
Для эффективной обработки увеличивающихся потоков всех этих сведений уже нельзя использовать традиционные серверы и системы хранения корпоративного класса — подход, при котором все данные хранятся централизованно на одном сервере и к нему обращаются разные приложения, а по мере роста объема данных в сервер добавляются новые вычислительные мощности и емкости хранения себя.Этот подход себя исчерпал. При достижении определенной точки насыщения такой способ масштабирования по вертикали приводит к снижению скорости обращения к данным, а вместе с ней и производительности приложений. Возможно, выход состоит в использовании других, отличных от кластеров высокопроизводительных архитектур?
Для решения задач HPDA сегодня принято использовать программное обеспечение Hadoop, позволяющее собирать, управлять, сортировать данные корпоративных приложений и готовить их для обработки аналитическими системами. Типичная конфигурация Hadoop состоит из распределенной файловой системы Hadoop Distributed File System (HDFS), платформы для реализации распределенной обработки данных и их хранения Hadoop MapReduce и утилит, используемых модулями Hadoop. Файловая система HDFS обеспечивает надежное хранение для распределенных с помощью MapReduce приложений, работающих с большими файлами и читающих данные большими последовательным блоками. Эта файловая система обеспечивает хранение больших массивов данных и поддерживает распределенную обработку для заданий MapReduce, однако традиционные суперкомпьютерные приложения не работают с HDFS. Для манипуляций с данными Hadoop приложение должно обращаться к ним через специальные интерфейсы либо использовать утилиты на базе командной строки.
Обычно HDFS разбивает большие файлы на блоки, которые затем распределяются по узлам хранения (data node), а для защиты от сбоев оборудования HDFS реплицирует эти блоки на несколько узлов хранения. Из-за такой распределенности хранения в HDFS нельзя изменять файлы — можно только извлечь блоки файла из HDFS, собрать его из этих блоков, внести изменения и затем целиком записать файл обратно в HDFS, которая снова разобьет его на блоки и распределит их по узлам.
В архитектуре Hadoop не только данные, но и их обработка осуществляется на разных узлах кластера — с помощью MapReduce приложение разбивается на части, каждая из которых может выполняться на любом узле кластера. Периодически данные, полученные после такой распределенной обработки, собираются для получения промежуточного или окончательного результата. Важным компонентом Hadoop является планировщик выполнения заданий YARN (Yet Another Resource Negotiator), который учитывает физическое расположение данных и размещает блок приложения, работающий с этими данными, на том же узле, что и данные, для устранения задержек перемещения между узлами. Как видно из рис. 1, большинство основных приложений Hadoop располагаются поверх HDFS.
Рис. 1. HDFS — основа Hadoop |
Другая проблема выполнения задач HPDA на суперкомпьютерах связана с отличиями систем хранения на конфигурациях HPC и используемых сегодня комплексах для хранения Больших Данных. Первые разрабатывались для достижения высокой производительности вычислений и обычно используют высокоскоростные сети, параллельные файловые системы и бездисковые вычислительные узлы. Однако системы, ориентированные на обработку больших объемов данных, поступающих из различных источников, могут использовать относительно медленные сети, локальные файловые системы и дисковые узлы хранения.
Для объединения двух миров — HPC и Больших Данных — необходима платформа, которая позволяет суперкомпьютерным приложениям в ходе аналитических расчетов обрабатывать данные, хранящиеся в среде Hadoop, а значит, надо, в частности, снять ограничения на манипуляции данными в HDFS. В идеале пользователи должны получить возможность выполнять на суперкомпьютере приложения Hadoop точно так же, как и любое другое HPC-приложение, с тем же уровнем производительности, а для этого необходима тесная интеграция Hadoop с файловой системой и планировщиками заданий, используемыми в суперкомпьютерных системах.
Во многих системах HPC используется массово-параллельная распределенная открытая файловая система Lustre [3], масштабируемая до десятков тысяч клиентов, сотен терабайт емкости и обеспечивающая более высокую производительность доступа к данным, чем HDFS (обычно на уровне 750 Гбайт/с, а в некоторых случаях до 2 Тбайт/с), гарантирующая пропускную способность ввода-вывода независимо от физического расположения данных, а также реализующая быстрое восстановление конфигурации при отказах узлов или межузловых соединений. Для выполнения приложений Hadoop требуется модель программного обеспечения, предусматривающая замену HDFS на Lustre, — как, например, в расширении Intel Enterprise Edition for Lustre (EE). В EE предлагаются усовершенствования Lustre, которые включают утилиты, упрощающие инсталляцию, конфигурирование и централизованное управление файловой системой Lustre, а главное — приложения Hadoop (MapReduce) могут без какой-либо модификации использовать масштабируемые системы хранения на базе Lustre. Как следствие, приложения HPDA способны теперь работать на суперкомпьютерах и обращаться к данным, размещенным в POSIX-совместимой файловой системе. На рис. 2 представлена структура Hadoop с интегрированными в нее модулями EE, позволяющими приложениям Hadoop напрямую обращаться к файлам Lustre.
Рис. 2. HDFS на Lustre |
***
По прогнозам IDC, в период c 2013 по 2018 год рынок решений HPDA вырастет с 933,4 млн до 2,7 млрд долл., а продажи систем хранения для HPDA увеличатся с 514 млн до 1,7 млрд долл. Компании из разных секторов экономики уже начинают применять решения HPDA при анализе Больших Данных, однако, чтобы эффективно использовать имеющиеся суперкомпьютерные мощности, предстоит адаптировать системное программное обеспечение для работы, например, с Hadoop.
Литература
- Дмитрий Волков, Александр Фролов. Оценка быстродействия нерегулярного доступа к памяти // Открытые системы.СУБД. — 2008. — № 1. — С. 15–19. URL: http://www.osp.ru/os/2008/01/4836914 (дата обращения 18.09.2014).
- Максим Кудрявцев, Леонид Эйсымонт, Денис Мошкин, Михаил Полунин. Суперкластеры — между прошлым и будущим // Открытые системы.СУБД. — 2008. — № 8. — С. 40–47. URL:http://www.osp.ru/os/2008/08/5661383 (дата обращения 18.09.2014).
- Михаил Кузьминский. Cуперкомпьютеры семейства XT // Открытые системы.СУБД. — 2010. — № 04. — С. 12–15. URL: http://www.osp.ru/os/2010/04/13002273 (дата обращения 18.09.2014).
Дмитрий Волков (vlk@keldysh.ru) — сотрудник ИПМ им. М. В. Келдыша РАН, главный редактор, «Открытые системы.СУБД», Лев Левин (osmag@osp.ru) — независимый автор (Москва).