300 likes | 485 Views
Разработка распределенных алгоритмов и высокопроизводительной программной системы для облачного хранения , потоковой обработки и сбора в реальном времени сверхбольших наборов научных данных. М.Н.Жижин , А.Н.Поляков , А.А.Пойда , Д.П.Медведев НИЦ « Курчатовский институт ».
E N D
Разработкараспределенныхалгоритмов и высокопроизводительнойпрограммнойсистемыдляоблачногохранения, потоковойобработки и сбора в реальномвременисверхбольшихнаборовнаучныхданных • М.Н.Жижин, А.Н.Поляков, А.А.Пойда, Д.П.Медведев • НИЦ «Курчатовскийинститут» Государственный контракт № 07.514.11.4045 Выполняется в рамках федеральной целевой программы «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы»
Сверхбольшиенаборыданных в научныхобластях • Физикавысокихэнергий (LHC) • Астрофизика (SDSS, численныемоделиВселенной) • Геофизика и глобальныеизмененияклимата (Архивметеонаблюдений WMO, климатологические и прогноз NCEP/NCAR и ECMWF, сейсмика, космическаяпогода SPIDR) • Дистанционноезондирование (архивыизображений MODIS, DMSP, GOES) • Биоинформатика и нанотехнологии (геном, архивыизображений с микроскопов, томографов)
Необходимостьисследований • Нарастаниеобъемовсобираемыхэкспериментальныхданныхиувеличениеихсложности, связанноес ростомчисла и разрешающейспособностинаучныхсенсоров • Экспоненциальныйроствычислительныхвозможностей и объемоврезультатоввычислений, требующиххранениядляповторногоанализа
Перспективныетехнологиихранения и управленияданными • Объектныеоблачныехранилищаданных Amazon S3, MS DataMarket, OpenStack Swift, Cassandra, DropBox • Специализированныесистемыхраненияадаптированныедляхранениянаучныхданных, такиекакRasDaMan и SciDB • Гибридныесистемыхранения (специализированнуюмодельданныхповерххранилищаболееобщегоназначения) ActiveStorage • Распределеннаяпотоковаяобработка Twitter Storm, Yahoo S7, IBM Streams, Hadoop.
Недостатки существующих систем • Разнообразиеформатовданных и типов их представления • Отсутствиедостаточноуниверсального и высокоуровнегоязыказапроса, учитывающегоспецификухранения (например,в облаке) и моделиданных (в первуюочередьмногомерныемассивы) • Отсутствиемасштабируемой, распределенной, открытойплатформыдляоблачногохранениянаучныхданных • Отсутствиефреймворка, обеспечивающего распределеннуюпараллельнуюобработкупотоковнаучныхданных
Цельпроводимыхисследований • Разработкапрограммныхсистем, объединяющихвысокопроизводительныетехнологии и параллельныеалгоритмыуправлениясверхбольшиминабораминаучныхданных • Адаптациясуществующихсервисовдоступа и управленияданными, работающимипреимущественно с локальнымифайловымисистемами и отчасти с удаленныминаборамиданных, дляработы с облачнымихранилищамиданных
ОсобенностипредлагаемогорешенияОсобенностипредлагаемогорешения • Распределенныепотоковыевычисления в облаке • Распределенныеоблачныехранилища • Общий языкзапросовдляраспределенноговыполнения и управлениярабочимпотоком • Интеграция и проведениесовместногоанализа в различныхобластях
OpenStack Swift Высокоотказоустойчивое, распределенное хранилище объектов или блобов с длительной поддержкой целостности. • Хранение образов узлов • Работа в качестве самостоятельного контейнера данных • Обеспечение отказоустойчивости и резервирования данных • Создание резервный копий и архивирование данных • Масштабируемость • RESTful S3-like интерфейс • поддержка системы авторизации и аутентификации пользователей (swauth, keystone)
ОблачноехранилищемногомерныхмассивовActive Storage ActiveStorage - универсальное хранилище численных данных, предназначенное для хранения временных рядов, спутниковых изображений, результатов численного моделирования, а также любой другой информации, которая может быть представлена в виде многомерных численных массивов. Особенностями хранилища являются: • Универсальная архитектура, позволяющая держать разнородные данные в единой системе хранения. • Эффективное индексирование больших объемов данных (десятки и сотни терабайт). • Возможность базовой обработки данных непосредственно на узлах хранилища (арифметические операции, статистическая обработка, линейная свертка). • Интегрированные метаданные; описания данных неотделимо от самих данных. • Возможность автоматического распределения данных (а также распараллеливания обработки) по нескольким узлам. • Возможность использования в инфраструктуре Грид через сервисы • OGSA-DAI.
Разбиение массивов на чанки Массив не разбитый на чанки Массив разбитый на чанки 1 поисковый запрос 8 поисковых запросов 4 поисковых запроса 4 поисковых запроса • Чанки хранятся в таблице базы данных как объекты • Чанки могут быть различных размеров
Реанализ погоды NCEP/NCAR • Постоянно обновляемый набор данных • Включает вывод наблюдений и глобальной климатической модели • 74 погодных параметра • 5000 netCDFфайлов, 30 – 500 MB каждый • Временной интервал: • 1948 – 2008 гг. • 4-х часовые значения • Покрытие: • Регулярная сетка, 2.5 x 2.5 градуса • T62 Гауссовскаясетка, 192 x 94 точек.
Сервис доступа к распределенным системам хранения VOSpace Интерфейс доступа к данным подключаться к точкам входа нескольких распределённых хранилищ. добавлять и удалять объекты данных и контейнеры хранения управлять метаданными объектов получать уникальные ссылки (URI) на объекты данных для доступа к ним создавать серверные задачи для перемещения данных между различными хранилищами или точками входа. Особенности VOSpace VOSpace не накладывает ограничений на способы хранения и передачи данных. Может работать с локальной файловой системой и OpenStackSwift. Контролирует доступ и управление данными, метаданными и задачами синхронизации. Позволяет подключать различные схемы авторизации (openID, oAuth и другие системы) RESTfullинтерфейс
СервисOPeNDAPдлядоступа к многомерныммассивам • Для реализации OPeNDAPсервиса был использован сервер данных THREDDS (Thematic Real-time Environmental Distributed Data Services), цель которого – обслуживать запросы пользователя, учитывая содержимое наборов данных наряду с их метаописанием. Сервер данных THREDDS использует модель данных Common Data Model для представления данных из различных источников, которые потом могут быть переданы пользователю несколькими путями: по протоколу OPeNDAP, через сервис OGC Web Coverage Service, как NetCDFподвыборку, по HTTP-протоколу • THREDDS работает только с локально хранящимися данными. В ходе проекта, THREDDS был дооснащен возможностью сервировать данные, находящиеся в хранилище SWIFT.
Страница формирования OPeNDAPзапроса из файла, находящегося в объектном хранилище SWIFT
Потоковаяобработкаданных Twitter STORM Storm – распределенная система реального времени для обработки данных. Аналогично тому, как Hadoop, поддерживает ряд примитивов для организации пакетной обработки, Storm поддерживает примитивы для организации обработки данных в реальном времени. • Простая модель программирования (Clojure, Java, Ruby, Python ). • Отказоустойчивость • Горизонтально расширяемая система (вычисления идут параллельно с использованием многопоточностимногопроцессности и на нескольких серверах). • Storm гарантирует, что каждое сообщение в потоках будет полностью обработано как минимум один раз. Storm самостоятельно инициирует повторную отправку сообщений в случае ошибок при их обработке. • В качестве базового слоя для организации очереди сообщений используется ØMQ. • Запуск рабочих потоков как на кластере, так и в локальном режиме на одной машине.
Развертывание Twitter Storm в системе облачных вычислений На ряде виртуальных машин системы облачных вычислений разворачивается Zookeeper-кластер. Одна из машин назначается головным узлом кластера. На машины кластера устанавливаются приложения 0MQ (используемый Twitter Storm как базовый слой для организации очереди сообщений)и пакеты Twitter Storm.
Неудобства работы с системой STORM и методы их решения Неудобства запуска рабочего потока в STORM: • Запуск скрипта производится локально на головной машине кластера либо через скрипты (Leiningenили Maven), при этом каждый раз на удаленную машину надо закачивать библиотеки для выполнения программы. • При запуске на кластере, состоящим из нескольких машин, сложен процесс сбора результирующих данных. Для преодоления этих неудобств была разработана инфраструктура развертывания и запуска рабочего потока в системе облачных вычислений: • На головном узле разворачивается HTTP-сервлет, реализующий RESTfulинтерфейс управления рабочим потоком. Пользователю не надо взаимодействовать с локальной машиной. • Используется дополнительное звено в цепочке запуска программы - развертывание (deploy): процесс передачи всех необходимых библиотек в систему STORM. После этого пользователь может повторно запускать этот же рабочий поток без необходимости повторной загрузки кода. • Для сбора результатов реализован специальный обработчик, который передает данные на HTTP-сервлет, который в свою очередь возвращает их в потоке пользователю в ответ на его запрос запуска рабочего потока.
Инфраструктура создания и запуска рабочего потока
Пример схемы рабочего потока TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("spout1", new GetData(), 10); builder.setSpout("spout2", new GetData(), 10); Fields tsr = new Fields("lat", "lon"); builder.setBolt("proc", new Processing(), 4).fieldsGrouping("spout1", tsr).fieldsGrouping("spout2", tsr); builder.setBolt("output", new OutputBolt(backUrl, taskId)).shuffleGrouping("proc"); Вычисление скорости ветра по U- и V- компонентам:
Научныеприложения • Анализтрендов и распознованиеобъектов, напримергазовыхфакеловв базеданныхночныхогней • Поисксобытий и анализэффективностиэнергетическихсистем с учетомклиматическихфакторов • Экологическиймониторинг с помощьюсенсорныхсетей • Совместнаяинтерпретациямногопараметрическихгеофизическихрядов, мультиспектральныхизображенийкаменногоматериала (керна) • Комплексный анализ естественных и искусственных полей и геодинамических моделей в задачах зондирования литосферы и верхней мантии
Экспериментальныенаборыданных • Космическаяфизика (временныеряды SPIDR, включаягеомагнитные, ионосферные, солнечныевариации) 100 Гб • Климат (кубыданныхреанализа и прогнозапогоды) 200 Тб • Дистанционноезондирование (продуктыспутников DMSP в первуюочередьежегодныекартыстабильныхночныхогней) 400 Тб • Геофизика (кубыданныхсейсмическойтомографии, геомагнитногополя в коре и мантииЗемли, временныерядысейсмических и GPS наблюдений) 1 Тб
Тайлсервердлявизуализации и сравнениямногоспектральныхгигапиксельныхизображенийгеологическогокерна
Тайлсервердлявизуализации и межгодовогосравненияизображенийночныхогнейЗемли
Визуализацияи сравнениягеофизическихполейЗемли
Виртуальная Обсерватория Программное обеспечение для управления метаданными с функциями преобразования и отображения на многообразии схем (стандартов) метаданных из различных предметных областей — метеорологии, солнечно-земной физики, сейсмологии. • Принципиальная схема работы с метаданными и данными в ВО • Получение метаданных от источника • Создание записи метаданных • Сопровождение записи об источнике сопутствующей документацией и информацией • Заказ данных из источника с помощью OE-формы • Получение объекта данных • Работа с данными
Выводы В результате работы над проектом были получены следующие результаты: • Разработана масштабируемая, распределенная, открытаяплатформадляоблачногохранениянаучныхданных. • Создан фреймворк, обеспечивающий распределеннуюпараллельнуюобработкупотоковнаучныхданных. • На базе платформы развернуты сервисы визуализации данных. • Создана система управления метаданными. • Разработано прикладное программное обеспечение ActiveStorage для облачного хранения, обработки и доступа к сверхбольшим многомерным научным массивам научных данных.