УДК 004.75
СПЕЦИФИКАЦИЯ РАСПАРАЛЛЕЛИВАНИЯ ОБРАБОТКИ ВЕКТОРНЫХ ДАННЫХ В МОДЕЛИ MAPREDUCE Авраменко Юрий Владимирович
Программист, e-mail: idstu@icc.ru Шумилов Александр Сергеевич
Аспирант, e-mail: idstu@icc.ru Федеральное государственное бюджетное учреждение науки Институт динамики систем и теории управления имени В.М. Матросова Сибирского отделения Российской Академии
наук, 664033, Иркутск, ул. Лермонтова, 134
Аннотация. С развитием информационных технологий увеличиваются объемы производимых и обрабатываемых данных. Одной из распространенных моделей обработки данных больших объемов является программная модель MapReduce. Использование такого подхода осложняется тем, что для реализации операций map и reduce требуется программирование операций map и reduce, что затрудняет использование данной парадигмы, например, для специалистов-предметников. В рамках Геопортала ИДСТУ СО РАН было разработано и реализовано программное средство, позволяющее осуществлять распределенную обработку векторных геоинформационных данных в рамках модели MapReduce. Реализован набор обработчиков операций map и reduce для различных форматов данных. Разработанное программное средство, осуществляющее обработку больших объемов растровых и векторных геоинформационных данных в распределенной среде на основе спецификаций, уменьшающее время выполнения распределенных сервисов вследствие их автоматического распараллеливания и позволяющее избавить пользователя от программирования map и reduce обработчиков. Ключевые слова: распределенные вычисления, MapReduce, пространственные данные, геопортал, сервис-ориентированная среда
Введение. В современном мире информационных технологий с каждым годом растет объем производимых, обрабатываемых и хранимых данных. Все чаще для обработки больших массивов данных используется сервис-ориентированный подход, предполагающий предоставление вычислительных алгоритмов в виде доступных через сеть Интернет сервисов [6]. Использование сервис-ориентированного подхода позволяет строить гибкие, тестируемые и масштабируемые информационные системы [7]. В то время, как сервис-ориентированный подход позволяет реализовывать вычислительные алгоритмы в виде атомарных сервисов, технологии виртуализации позволяют масштабировать сервисы. Масштабирование позволяет создавать копии вычислительных узлов, на которых развернуты сервисы, за короткое время с помощью специальных программных средств.
При работе с сервисами часто возникает ситуация, когда входные параметры сервиса занимают большой объем, что увеличивает время выполнения сервиса, так как помимо непосредственной обработки поступивших данных, сервис тратит время на загрузку входных параметров, затем пользователю, вызвавшему сервис, необходимо произвести загрузку результатов работы сервиса в собственное хранилище данных. Таким образом, учитывая возможность параллельного выполнения нескольких копий сервиса, возникает задача разбиения данных на фрагменты, передачи фрагментов копиям вычислительного сервиса с последующей сборкой фрагментов в результирующий массив данных. Данный подход (с
выделением операций разбиения и сборки) называется MapReduce [9] и часто используется при работе с большими данными [5, 8].
Проблема, которая решается в данной работе - автоматизация использования программной модели MapReduce при работе с пространственными данными, в частности, с растровыми и векторными форматами данных. Распараллеливание обработки входных и выходных данных сервисов позволяет ускорить время выполнения сервисов.
Далее приводится реализация операций map и reduce в рамках Геопортал ИДСТУ СО РАН [3] для пространственных данных на примере сервиса идентификации объектов на спутниковых снимках. Геопортал представляет собой веб-приложение, ориентированное на обработку и хранение геоинформационных данных. Для выполнения операций map и reduce над данными реализован набор обработчиков, работа которых определяется с помощью спецификаций, заданных в виде JSON-файлов. Спецификации содержат команды для обработчиков операций map и reduce. Любой сервис, зарегистрированный на Геопортале, может иметь определенную для него спецификацию, задающую способ разбивки входных (операция map) и склейки результирующих данных (операция reduce).
Цель работы. Целью данной работы является разработка механизма автоматического распараллеливания работы распределенных сервисов, работающих с пространственными данными. Разрабатываемый механизм призван решать проблему передачи и получения данных большого объема сервисами, тем самым ускоряя работу сервиса в случае, если сервис развернут больше, чем на одном вычислительном узле. В данной работе рассмотрено применение операций map и reduce как для растровых, так и векторных пространственных данных. Правила, по которым происходит выполнение операций map и reduce, задаются в виде спецификаций.
Для апробации разработанного механизма был выбран алгоритм идентификации объектов на спутниковых снимках, реализованный в виде веб-сервиса с интерфейсом стандарта WPS (Web Processing Service) [10] и зарегистрированный на Геопортале ИДСТУ СО РАН.
Веб-сервис производит поиск и идентифицирует объекты на изображении с использованием заданной пользователем совокупности характеристик. Веб-сервис принимает на вход три параметра: входное изображение; запрос пользователя; пороговое значение оценки объектов. На выходе формируется файл, в котором содержатся найденные объекты с значением оценки ниже порога. Значение оценки записывается в поле объекта threshold. Для формирования запроса (совокупности характеристик объекта) используется логический язык SOQL [1]. Пример описания объекта прямоугольной формы с заданной текстурой и спектральными характеристиками def(A,B,C,D):- line(A,B), line(B,C), line(C,D), line(D,A), dist(A,B)=30, dist(B,C)=20, dist(C,D)=30, dist(D,A)=20, angle(A,B,C)=90, angle(B,C,D)=90, angle(C,D,A)=90, texture(A,B,C,D,sample). Соответствующий запрос выглядит следующим образом: ?-def(A,B,C,D).
Веб-сервис идентификации принимает на вход растровые файлы спутниковых снимков высокого разрешения и возвращает векторный файл с найденными полигональными объектами, для каждого из которых определено значение функции энергии. Время работы веб-сервиса на изображении размером 1000x1000 пикселей может составлять от нескольких до десятков минут, в зависимости от запроса пользователя. В целях уменьшения времени работы сервиса и равномерного использования доступных вычислительных ресурсов локальной облачной инфраструктуры ИСДТУ СО РАН выполнение разработанного веб-сервиса было распараллелено в рамках модели MapReduce. Входные данные, в частности, спутниковый снимок, делятся на некоторое количество частей, которые впоследствии
передаются в копии веб-сервиса, запущенные на разных вычислительных узлах. Однако, в силу специфики работы веб-сервиса, а именно векторного формата SHAPE его выходных параметров, возникает задача склейки результатов выполнения копий веб-сервиса в один файл. В данной работе реализован обработчик операции reduce, решающий задачу обработки векторных данных на этапе склейки в рамках программной модели MapReduce. Такой подход на этапе объединения результатов от различных узлов распределенной сети приведет к дублированию объектов [4], поэтому предлагается на основе разработанных спецификаций [2] реализовать возможность обработки векторных результатов выполнения распараллеленных сервисов.
Распараллеливание веб-сервиса идентификации. При распараллеливании выполнения веб-сервисов в рамках программной модели MapReduce сначала производится операция разделения входных данных. При разделении возможна ситуация, когда искомый объект может находиться на границе частей входного разделяемого файла. Для обработки такого рода граничных случаев в спецификации, соответствующей операции map, необходимо указать соответствующий параметр перекрытия частей разделяемого растра для обеспечения нахождения всех объектов. Пример спецификации, приведенный
ниже, определяет область перекрытия равной 500 метрам: {
map: {
overlap: 500, // Ширина перекрытия units: «m» // Единицы измерения
}
}
После выполнения операции разделения входного параметра происходит запуск распределенных копий веб-сервиса идентификации объектов, каждому из которых передается своя часть разделенного файла. Схема распараллеливания выполнения веб -сервиса идентификации объектов приведена на рис. 1. Модуль Геопортала принимает на вход параметры, передаваемые на вход веб-сервису. Далее параметры, для которых определена спецификация, разделяются в соответствии со спецификацией операции map. Затем происходит запуск копий веб-сервиса идентификации в соответствии со стандартом WPS. По мере завершения работы копий веб-сервисов данные собираются Геопорталом, вызывается соответствующий reduce обработчик, работающий в соответствии со спецификацией и полученный файл возвращается пользователю.
Распараллеливание выполнения веб-сервиса позволяет уменьшить общее время выполнения веб-сервиса, а также задействовать доступные аппаратные мощности для решения задачи.
Склейка результатов. При склейке результатов выполнения копий веб-сервисов возможно возникновение конфликтов. Для полигональных объектов существует определенный набор топологических правил, например, превышение кластерного доступа, недопустимость перекрытия объектов или пробелов внутри полигонов, необходимость совпадения границ и площадей объектов из разных классов, и т.д. Топологические правила используются в картографии для устранения ошибок. Нарушение одного из правил приводит к конфликту. Для рассматриваемой задачи характерно перекрытие объектов.
Input Data Out Data
Рис. 1. Схема распараллеливания выполнения веб-сервиса
Склейка результатов выполнения копий распараллеленного веб-сервиса
идентификации объектов осуществляется в соответствии со следующей спецификацией: {
reduce: {
conflict: { // Секция спецификации обработки конфликтов type: "Intersection", // Тип конфликта keepAll: false, // Определяет, разрешать ли конфликты resolveFieldName: «threshold», // Сравниваемое поле filter: "MIN" // Условие
}
}
}
Псевдокод алгоритма склейки двух соседних файлов данных, содержащих список найденных объектов, представлен ниже. Массивы listl и list2 содержат элементы рассматриваемых соседних SHAPE файлов. resolveFieldName, filter, keepAll - параметры алгоритма, получаемые из спецификации. mergedList - список элементов из соседних файлов, между которыми конфликты разрешены (в случае необходимости), то есть объекты готовы для записи в результирующий файл. Поле type указывает на топологическое правило, в случае нарушения которого производится исправление (в данном случае это правило недопустимости перекрытия объектов).
ВХОД: list_1, list_2, resolveFieldName, filter, keepAll.
ВЫХОД: mergedList.
Если keepAll=true тогда выполнить
Объекты из list_1 и list_2 добавить в mergedList
Иначе выполнить
Если type=Intersection тогда выполнить
Сформировать списки пересекающихся объектов,
соответствующие одному реальному lists Цикл для каждого списка из lists выполнить
Взять объект, у которого значение поля resolveFieldName удовлетворяет условию в поле filter и добавить его в mergedList Конец цикла
Добавить оставшиеся не пересекающиеся объекты в mergeList
Конец условия Конец условия Вернуть список объектов mergedList
Веб-сервис может быть распараллелен на произвольное количество вычислительных узлов, таким образом, число результирующих векторных файлов может также варьироваться. Так как алгоритм склейки работает только с двумя файлами, имеющими общую область, процесс получения общего результата выполнения сервиса, содержащего в себе все полученные результирующие файлы, разбивается на несколько этапов. На каждом из этапов выбираются пары соседних файлов, которые затем склеиваются. На следующий этап переходят склеенные файлы и файлы, не получившие пару на текущем этапе. На последнем этапе происходит склейка двух последних файлов, и получившийся файл возвращается пользователю как результат выполнения веб-сервиса.
Апробация. Апробация работы алгоритма склейки SHAPE файлов показана на рис. 2. В данном примере необходимо было найти объекты прямоугольной формы техногенного происхождения. Исходное изображение было разделено на два, частично перекрывающих друг друга (перекрытие выделено пунктиром на рис. 2а). После выполнения копий веб-сервиса происходит этап склейки, в процессе которого исключаются пересекающиеся объекты (закрашенные прямоугольники). После формирования результирующего файла в него добавляются найденные объекты, находящиеся в общей области, прошедшие проверку и оставшаяся часть объектов, что изображено на рисунке 2б.
В целях определения эффективности метода рассматриваемый сервис идентификации был распараллелен и его копии были запущены на 12 вычислительных узлах, схожих по программным и аппаратным характеристикам. Время выполнения сервиса, с учетом времени разбиения, передачи и склейки данных, а также времени непосредственного выполнения копий сервиса, равно 110 секундам (взято среднее значение среди 20 запусков). Сервис идентификации объектов, запущенный без распараллеливания на одном вычислительной узле, выполняется 1240 секунд (взято среднее значение среди 20 запусков). Распараллеливание работы веб-сервиса позволило ускорить его выполнение в 11,2 раз. Сравнение времени выполнения сервиса в обоих случаях представлено на рис. 3.
у^уу аул
а)
оХо.о^Ь. * <?
б)
Рис. 2. Апробация работы алгоритма объединения двух SHAPE файлов в один
Таким образом, при распараллеливании выполнения веб-сервиса (при условии, что время выполнения сервиса линейно зависит от объема входных данных, а также при условии идентичности аппаратных и программных характеристик вычислительных узлов как при распараллеливании, так и без) в соответствии с программной моделью МарКеёиее ускорение его выполнения в среднем равно числу узлов, на которых происходит распараллеливание.
Заключение. В результате проделанной работы разработаны спецификации, определяющие параметры обработки векторных данных при процессе их склейки в рамках модели MapReduce. Реализованы соответствующие обработчики, осуществляющие склейку данных на основании спецификаций. Реализованный способ распараллеливания работы веб-сервисов был апробирован и показал свою работоспособность и эффективность. Применение управляемых спецификациями обработчиков позволяет упростить выполнение сервисов в рамках модели MapReduce.
Работа выполнена при финансовой поддержке РФФИ, № гранта 16-37-00110 мол_а.
СПИСОК ЛИТЕРАТУРЫ
1. Авраменко Ю.В., Фёдоров Р.К., Бычков И.В., Ружников Г.М. Интерпретатор языка SOQL для обработки растровых изображений // Вычислительные технологии. 2016. Т. 21. № 1. С. 49 - 59.
2. Авраменко Ю.В., Шумилов А.С. Метод обработки растровых изображений в рамках модели mapreduce // Информационные и математические технологии в науке и управлении. 2016. № 4-2. С.110 - 115.
3. Фёдоров Р. К., Бычков И. В., Шумилов А. С., Ружников Г. М. Система планирования и выполнения композиций веб-сервисов в гетерогенной динамической среде // Вычислительные технологии. 2016. Т. 21. № 6. С. 18 - 35.
4. Aji A., Wang F., Vo H., Lee R., Liu Q., Zhang X., Saltz J. Hadoop: GIS: A High Performance Spatial Data Warehousing System over MapReduce // The 39th International Conference on Very Large Data Bases. 2013. Vol. 6, №. 11. Pp. 1009 - 1020.
5. Althebyan Q., AlQudah O., Jararweh Y., Yaseen Q.. A scalable Map Reduce tasks scheduling a threading-based approach // International journal of computational science and engineering. 2016. Vol. 14. № 1. Pp. 44 - 54.
6. Hamzah M., Baharom F., Mohd H. A Comparative Study of Service-Oriented Architecture Maturity Model // Proceedings of knowledge management international conference (KMCIE) 2016.
7. Lojka T., Bundzel M., Zolotova I. Service-oriented Architecture and Cloud Manufacturing // Acta polytechnica hungarica. 2016. Vol. 13. № 6. Pp. 25 - 44.
8. Maitrey S., Jha C. Handling Big Data Efficiently by using Map Reduce Technique // 2015 IEEE international conference on computational intelligence and communication technology. 2015. Pp. 703 - 708.
9. The Definite Guide to the MapReduce paradigm [Электронный ресурс] URL: https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html (дата обращения: 16.04.2017).
10. Web Processing Service [Электронный ресурс] URL: http://www.opengeospatial.org/standards/wps (дата обращения: 29.04.2017).
УДК 004.75
SPECIFICATIONS FOR VECTOR DATA PROCESSING PARALLELIZATION WITHIN THE MAPREDUCE PROGRAMMING MODEL Yuriy V. Avramenko
Programmer, e-mail: idstu@icc.ru Alexander S. Shumilov
Postgraduate, e-mail: idstu@,icc.ru Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences, 664033, Irkutsk, Russia, Lermontov str., 134
Abstract. In nowadays world, the volume of generated and processed data constantly increases along with the development of the informational technologies. One of the most common approach for big data processing is the MapReduce programming model. The use of this model requires the programming of the map and reduce operations. As the part of the Geoportal of ISDCT SB RAS, the special application was developed, which provides the distributed processing of the vector spatial data within the MapReduce framework. The set of map and reduce operations processors was developed for various data formats. The developed application processes big volumes of raster and vector spatial data in the distributed environment using the specifications. The implemented approach lowers the execution time of spatial services because of the automatic execution parallelization and letting user to use it without any extra map and reduce processors programming.
Keywords: distributed computations, MapReduce, spatial data, geoportal, service-oriented environment
References
1. Avramenko Y.V., Fedorov R.K., Bychkov I.V., Rugnikov G.M. Interpretator yazyika SOQL dlya obrabotki rastrovyih izobrazheniy [The SOQL language interpreter for the raster images processing] // Computational technologies. 2016. Vol. 21. №. 1. Pp. 49 - 59. (in Russian)
2. Avramenko Y.V., Shumilov A.S. Metod obrabotki rastrovyih izobrazheniy v ramkah modeli MapReduce [Processing of raster images based on MapReduce model] // Information and mathematical technologies in science and management. 2016. №. 4-2. Pp. 110 - 115. (in Russian)
3. Fedorov R.K., Bychkov I.V., Shumilov A.S., Rugnikov G.M. Sistema planirovaniya i vyipolneniya kompozitsiy veb-servisov v geterogennoy dinamicheskoy srede [The system of service compositions execution in heterogeneous dynamic environment] // Computational technologies. 2016. V. 21. №. 6. Pp. 18 - 35. (in Russian)
4. Aji A., Wang F., Vo H., Lee R., Liu Q., Zhang X., Saltz J. Hadoop: GIS: A High Performance Spatial Data Warehousing System over MapReduce // The 39th International Conference on Very Large Data Bases. 2013. Vol. 6. №. 11. Pp. 1009 - 1020.
5. Althebyan Q., AlQudah O., Jararweh Y., Yaseen Q.. A scalable Map Reduce tasks scheduling a threading-based approach // International journal of computational science and engineering. 2016. Vol. 14. №. 1. Pp. 44 - 54.
6. Hamzah M., Baharom F., Mohd H. A Comparative Study of Service-Oriented Architecture Maturity Model // Proceedings of knowledge management international conference (KMCIE) 2016.
7. Lojka T., Bundzel M., Zolotova I. Service-oriented Architecture and Cloud Manufacturing // Acta polytechnica hungarica. 2016. Vol. 13. №. 6. Pp. 25 - 44.
8. Maitrey S., Jha C. Handling Big Data Efficiently by using Map Reduce Technique // 2015 IEEE international conference on computational intelligence and communication technology. 2015. Pp. 703 - 708.
9. The Definite Guide to the MapReduce paradigm [Digital resource] URL: https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html (access date: 16.04.2017).
10. Web Processing Service [Digital resource] URL: http://www.opengeospatial.org/standards/wps (access date: 29.04.2017).